IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Problème de procédure de ramassage de carottes


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut Problème de procédure de ramassage de carottes
    Bonjour,
    J'ai un problème avec la procédure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    procedure carottes;
    var
     m : integer;
    begin
    ate := 0;
      for m := 1 to 29 do
        begin
        glPushMatrix();
        glTranslatef(acar[m], bcar[m], ccar[m]);
        glColor3f( 153, 153, 0 );
        gluCylinder( glunewquadric(), 0.05, 0.0, 0.3, 30, 30 );
        glPopMatrix();
        if ((a < acar[m] + 1.2) and (a > acar[m] + 0.9)  and (b > bcar[m] - 0.2) and (b < bcar[m] + 0.2) and
          (c < ccar[m] + 1.1)) then
        ccar[m] := ccar[m] + 7;
        ate := ate + 1;
        if ate > 30 then
        Exit := 1;
    end;
    Légende:
    a, b, c : Coordonnées de mon personnage
    acar : Tableau de coordonnées abscisses de carottes
    bcar : Tableau de coordonnées ordonnées de carottes
    ccar : Tableau de coordonnées cotes de carottes
    ate : Une variable qui indique le nombre de carottes ramassées

    Remarque: Mon repère est inversé, je me déplace dans le sens négatif.


    Dans ce code, je voudrais que lorsque mon personnage est à une certaine proximité d'une de mes carottes (ici, la carotte m), sa coordonnée de cote prenne + 7 (donc la carotte monte) et que la variable ate prenne + 1 (donc j'ai mangé une carotte de plus). Si j'ai mangé x carottes (donc quand ate = x), je sors du niveau (Exit := 1).

    Problèmes:

    - La partie and (a > acar[m] + 0.9) de mon code n'est "pas lue" par le compilateur, càd que lorsque je suis sur une carotte tout celles qui la précedent disparraissent aussi (donc y a que if a < acar[m] + 1.2 qui est compilée de mon point de vue).

    - Le plus sérieux des deux problèmes est celui-ci: Si je mets ate à une valeur moindre de 30 (dans ce cas là), Exit prend d'ores et déjà 1 et je sors du niveau avant même de le commencer (mon perso commence à l'abscisse 0).

    Quelqu'un peut m'aider?
    Merci d'avance

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Il manque Begin End pour le if...
    donc ate := ate + 1 s'execute toujours...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Procedure carottes;
    Var
      m: integer;
    Begin
      ate := 0;
      For m := 1 To 29 Do
      Begin
        glPushMatrix();
        glTranslatef(acar[m], bcar[m], ccar[m]);
        glColor3f(153, 153, 0);
        gluCylinder(glunewquadric(), 0.05, 0.0, 0.3, 30, 30);
        glPopMatrix();
        If ((a < acar[m] + 1.2) And (a > acar[m] + 0.9)
          And (b > bcar[m] - 0.2) And (b < bcar[m] + 0.2)
          And (c < ccar[m] + 1.1)) Then
        Begin      
          ccar[m] := ccar[m] + 7;
          ate := ate + 1; //<- Cette ligne était toujours executé
                          //car il manquait begin end
        End;
        If ate > 30 Then Exit := 1;
      End;
    End;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    En effet, merci, maintenant le niveau ne se ferme plus si je modifie la valeur condition de ate.
    Mais j'ai toujours mes carottes qui redescendent après et si j'atteint et je dépasse ate, le niveau ne se ferme pas...

    Donc voilà en fait j'explique mieux ce qui se passe:

    Le jeu ne met ate à 1 que lorsque le personnage est sur une carotte.
    Mais lorsque le personnage n'est plus sur la carotte, elle redescend et donc ate redescend à 0. Or moi je veux que dès que le personnage est sur la carotte, elle reste en haut et ate reste à sa valeur ate + 1.


    Quelqu'un peut m'aider à faire ça?
    Merci d'avance

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Mmmmh si la carotte redescend c'est qu'à priori sa coordonnée ccar[m] devrait être décrémenté. Or ici la seule modification visible est que tu l'incrémente.

    Donc je dirais qu'il faudrait voir si ce ne sont pas les appels aux fonctions précédant ton IF qui ne sont pas responsable de ça (notamment glTranslatef(acar[m], bcar[m], ccar[m]) )

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    Aie aie aie!
    Je viens de voir dans mon projet que cette portion de code était présente presque à l'identique dans deux procédures différentes.
    Celle que je vous ai livrée est celle qui a pour résultat que les carottes restent par terre!
    Je vous donne le deuxième code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //carottes
    acar[1] := -1; bcar[1] := -1; ccar[1] := -1;
    for i := 1 to 5 do
      begin
       acar[i+1] := acar[i] - 1;
       bcar[i+1] := bcar[i];
       ccar[i+1] := ccar[i];
     
       if ((a < acar[i] + 1.1) and (a > acar[i] + 0.9) and (b > bcar[i] - 0.2) and (b< bcar[i] + 0.2) and
          (c < ccar[i] + 1.1)) then
        ccar[i] := ccar[i] + 7;
        FSOUND_PlaySound(7,burpsound);
    Voilà c'est celui-là le code que je voulais soumettre, désolé!
    Alors dans celui-là, la carotte monte quand je suis dessus, puis redescend quand je ne suis plus dessus. Effectivement y a pas de ate encore ici...

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bon c'est pas évident à comprendre (surtout qu'il doit manquer du code, au moins un end).

    Mais d'après ce que je comprends, à chaque tour de boucle tu reportes les valeurs actuelles des tableaux dans celles suivantes puis si le joueur est sur la carotte tu fais grimper ccar de 7 positions.

    C'est dans cette dernière action que se situe le problème car telle que fonctionne ta boucle, à l'index suivant la valeur de ccar courante est celle que tu lui a affecté précédemment AVANT de tester si la carotte devait grimper ou pas.

    Donc si je suis ta logique ça devrait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //carottes
    acar[1] := -1; bcar[1] := -1; ccar[1] := -1;
    for i := 1 to 5 do
      begin
       acar[i+1] := acar[i] - 1;
       bcar[i+1] := bcar[i];
       ccar[i+1] := ccar[i];
     
       if ((a < acar[i] + 1.1) and (a > acar[i] + 0.9) and (b > bcar[i] - 0.2) and (b< bcar[i] + 0.2) and
          (c < ccar[i] + 1.1)) then
       begin
        ccar[i] := ccar[i] + 7;
        ccar[i+1] := ccar[i];
        FSOUND_PlaySound(7,burpsound);
       end;
     
    end;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    En effet, tu as très bien compris ce que je cherche!
    Alors avec ton code (désolé pour avoir oublié le end, c'est juste que je ne l'ai pas mis dans le copier/coller), ce qui se passe maintenant c'est que lorsque je suis sur une carotte, la carotte en question et la carotte suivante disparraissent et puis... redescendent toutes les deux...

    En fait tu vois dans cette procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //carottes
    acar[1] := -1; bcar[1] := -1; ccar[1] := -1;
    for i := 1 to 5 do
      begin
       acar[i+1] := acar[i] - 1;
       bcar[i+1] := bcar[i];
       ccar[i+1] := ccar[i];
    C'est là que je remplis mes tableaux de sorte que les carottes soient alignées.


    Puis la partie suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       if ((a < acar[i] + 1.2) and (a > acar[i] + 0.8) and (b > bcar[i] - 0.2) and (b < bcar[i] + 0.2) and (c < ccar[i] + 1.1)) then
         begin
            ccar[i] := ccar[i] + 7;
            ccar[i+1] := ccar[i];
            FSOUND_PlaySound(6,burpsound);
            ate := ate + 1;
           end;
    
    end; //celui que j'avais oublié de copier/coller
    Cette partie de ma procédure se charge du "ramassage de carottes", et je voudrais qu'elle dise exactement ceci: "Si mon personnage est à une certaine proximité de la carotte m, alors sa cote (ccar) prend +7 (la carotte monte). Et elle y reste, merde. Après la valeur ate prend +1, valeur qui indique le nombre de carottes que le personnage a mangées. Et elle reste à la valeur ate + 1 lorsque le personnage n'est plus sur la carotte qu'il vient de manger!".

    Il me manque juste les parties soulignées...

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    moi si je comprend bien ce qui est codé...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
      //carottes
      //Met la carotte #1 (-1,-1,-1)
      acar[1] := -1; bcar[1] := -1; ccar[1] := -1;
     
      //ici j'imagine qu'il y a au moins 6 carottes car dans
      //la boucle, on accède à acar[i+1]
      for i := 1 to 5 do
      begin
        //la carrote suivante se positionne selon la précédente selon mouvement (-1,0,0)
        acar[i+1] := acar[i] - 1;
        bcar[i+1] := bcar[i];
        ccar[i+1] := ccar[i];
        //pourquoi on bouge les carottes ICI???
        //La carotte #6 sera finalement à (-6,-1,-1) si aucune n'est mangées?
        //ce code devrait être en début du niveau non?
     
        //ici test si le joueur est près de la carrote #i
        //j'ai un sérieux doute sur la validité de ce test...
        //l'idéal serait d'écrire une fonction DistanceJoueurCarrote(i) qui retourne
        //un float ou même des centaines d'unité si on veut rester en integer...
        if ((a < acar[i] + 1.1) and (a > acar[i] + 0.9) and (b > bcar[i] - 0.2) and (b< bcar[i] + 0.2) and
           (c < ccar[i] + 1.1)) then
        begin
          //ok on suposse ici qu'on est assez près...
          //déplace la carotte #i de (0,0,+7)
          ccar[i] := ccar[i] + 7;
          //et la suivante?
          ccar[i+1] := ccar[i];
          // Le joueur obtient un point (il mange une carotte)
          ate:=ate+1
          // fait un son..
          FSOUND_PlaySound(7,burpsound);
          //Puisqu'on est dans une boucle... si i=2 au moment de manger la carotte
          //la carotte i et i+1 seront à +7
          //toutes les autres carottes seront mises aussi à +7
          //et je ne crois pas que ce soit l'effet désiré??
        end;
     
      end;

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    Oui en effet pour répondre à ton dernier commentaire, ce n'est pas l'effet désiré et j'ai supprimé la ligne en question.

    Cependant lorsque tu dis qu'il faut que les carottes soient rangées au début du niveau, ce n'est pas ce que je fais dans la partie de la procédure "remplissage de tableaux"?

    Mon problème n'est pas là, c'est le fait que la carotte et ate redescendent à leurs valeurs initiales lorsque le personnage n'est plus sur la carotte. Et je ne comprends pas pourquoi... tu vois ça, toi?

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    tu pourrais peut-être nous redonner un bout code plus grand...
    et à jours...

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Ceci fait retomber les carottes lorsque la fonction est appeler de nouveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      for i := 1 to 5 do
      begin
        //la carrote suivante se positionne selon la précédente selon mouvement (-1,0,0)
        acar[i+1] := acar[i] - 1;
        bcar[i+1] := bcar[i];
        ccar[i+1] := ccar[i];
        //pourquoi on bouge les carottes ICI???
        //La carotte #6 sera finalement à (-6,-1,-1) si aucune n'est mangées?
        //ce code devrait être en début du niveau non?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    Ah... j'ai cherché tout l'après-midi et je n'ai pas trouvé la parade!

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    voici comment je ferais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Const
      MAX_CAROTTES = 6;
     
     
    //== Ebauche d'initialisation d'une partie ==
    Procedure InitGame()
    Begin
      //==
      ate := 0;
      Exit := 0;
      //== Position du joeur ==
      a :=
      b :=
      c :=
      //== Possitionnement initial des carottes
     
    End;
     
     
    //== Calcul la distace au carré entre le joueur et une carotte ==
    Function DistanceJoueurCarrote(i: integer): integer;
    Begin
      result := Power((a - acar[i]), 2) + Power((b - bcar[i]), 2) + Power((c - ccar[i]), 2);
    End;
     
    //== Verification si un carotte est mangée
    Procedure Carottes;
    Const
      DISTANCE_MIN = 1; //<- ICI A toi de trouver la bonne valeur!
    Begin
      //== Verifie la distance avec chaqu'une des carottes ==
      For i := 1 To MAX_CAROTTES Do
      Begin
        If DistanceJoueurCarrote(i) <= DISTANCE_MIN Then
        Begin
          //Fait monter la carotte
          ccar[i] := ccar[i] + 7;
          //donne un point au joueur
          ate := ate + 1;
          //fait un bruit...
          FSOUND_PlaySound(7, burpsound);
          If ate = MAX_CAROTTES Then Exit := 1;
        End;
      End;
    End;
     
    //== Ebauche de la boucle de jeux principale ==
    Procedure Main();
    Begin
      InitGame();
      Repeat
        Display();
        MoveJoueur();
        Carottes();
      Until (Exit = 1)
    End;
    ça doir ressembler à quelque chose du genre?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    //== Possitionnement initial des carottes
    Ben en dessous de ce commentaire je vais devoir réécrire le code avec lequel j'ai un problème, non?

    Edit: J'ai voulu tester ton code: Undeclared identifier Power.

  15. #15
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 292
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 292
    Points : 1 944
    Points
    1 944
    Par défaut
    Cette fonction se trouve dans l'unité Math (un petit coup de F1 aura permit de trouver )

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    Merci, désolé mais je ne savais pas...
    Bon par contre j'ai planché un bon quart d'heure sur celle-là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Procedure cars;
    Const
      DISTANCE_MIN = 0.3; //<- ICI A toi de trouver la bonne valeur!
    Begin
      //== Verifie la distance avec chaqu'une des carottes ==
      For i := 1 To MAX_CAROTTES Do
      Begin
        If distance(i) <= DISTANCE_MIN Then
        Begin
          //Fait monter la carotte
          ccar[i] := ccar[i] + 7;
          //donne un point au joueur
          ate := ate + 1;
          //fait un bruit...
          FSOUND_PlaySound(7, burpsound);
          If ate >= MAX_CAROTTES Then Exit := 1;
        End;
      End;
    End;
    "Incompatible types Integer and Single"
    Un petit coup de main, svp?

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    la distance d'un point en 3D est
    Racine((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2)

    la fonction distance que je t'es transmise ne fait pas la racine
    donc elle retourne toujour un integer donc un entier...

    donc la constante devrait être un entier aussi.
    comme 0,1,2 ou 3 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Const
      DISTANCE_MIN = 3; //<- ICI A toi de trouver la bonne valeur!

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    J'y avais pensé, mais même avec un entier j'ai le même message d'erreur...

    Edit: J'ai oublié de préciser que j'ai dû demander à la fonction distance de me rendre un glfloat au lieu d'un integer car le cas contraire j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function distance(i: integer) : integer;
    begin
      result := Power((a - acar[i]), 2) + Power((b - bcar[i]), 2) + Power((c - ccar[i]), 2);
    end;
    "Incompatible types Integer and Extended" !?!?!?!?!?!?!?!?!?

    Edit2: Ah oui, ben je ne peux pas mettre a,b et c en integer; ce doit être des glfloat pour que ça marche.

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    attention
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Const
      DISTANCE_MIN = 3; //<-Defini un entier
    alors que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Const
      DISTANCE_MIN = 3.0; //<-Defini un single

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 348
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Eric Boisvert Voir le message
    attention
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Const
      DISTANCE_MIN = 3; //<-Defini un entier
    alors que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Const
      DISTANCE_MIN = 3.0; //<-Defini un single
    Non hélas, ça ne marche pas comme ça non-plus...
    J'ai édité mon message précédent. Au cas où...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [SQLSERVER]Problème de procédure stockée
    Par mikedavem dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/12/2006, 01h17
  2. Réponses: 1
    Dernier message: 17/07/2006, 18h08
  3. Problème Création Procédure
    Par Yndigos dans le forum Oracle
    Réponses: 6
    Dernier message: 08/07/2006, 10h02
  4. Problème de procédure objet : Migration de TForm vers TFrame
    Par rvzip64 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 13/06/2005, 14h44
  5. Problème de procédure stockée
    Par Sorcier157 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/03/2005, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo