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

InterBase Discussion :

[InterBase] Problème avec les champs incrémentables


Sujet :

InterBase

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 115
    Points
    115
    Par défaut [InterBase] Problème avec les champs incrémentables
    Bonjour tous le monde
    J’ai un problème avec un champs incrémentable sur BDD InterBase
    J’ai suivi exactement un tutoriel trouvé Dans le site de Développez mais sa marche pas.
    Voilà ma procédure

    Code SQL : 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
    /* Stored procedures */
    CREATE PROCEDURE "PR_CHAUFEUR"
    (
      "AVALUE" INTEGER
    )
    AS
    BEGIN EXIT; END ^
    
    ALTER PROCEDURE "PR_CHAUFEUR"
    (
      "AVALUE" INTEGER
    )
    AS
     Begin
     avalue=Gen_Id(GN_CHAUFEUR,0);
     end
     ^
    SET TERM ; ^
    COMMIT WORK;
    SET AUTODDL ON;
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TMDD.IB_ChauffeurBeforePost(DataSet: TDataSet);
    begin
    if (IB_Chauffeur.State=dsInsert) then
    Begin
    IBStoredProc1.ExecProc;
    IB_Chauffeur.FieldByName('NumChauf').AsInteger:=IBStoredProc1.FieldByName('AVALUE').AsInteger;
    end;
    end;

    L’erreur qui m’affiche est comme suit :
    Champ Avalue non trouvé

    Ya t’il un problème sur ce que j’ai fait

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Ta PS, telle que tu l'as définie, ne renvoie aucune donnée.
    Elle aurait pu être écrite ainsi:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SET TERM ^;
    CREATE PROCEDURE PR_CHAUFEUR
    RETURNS (
      AVALUE INTEGER
      )
    AS
    BEGIN
      AVALUE = GEN_ID(GN_CHAUFEUR, 1); -- 1 pour incrémenter la valeur
      SUSPEND;
    END
    ^
    SET TERM ;^

    Mais si la finalité est d'attribuer une valeur à ton Champ NumChauf, une simple requête aurait suffit (à la place d'une PS):
    Avec un IBSQL par exemple:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      SELECT GEN_ID(GN_CHAUFEUR, 1) FROM RDB$DATABASE;

    Ensuite ton code BeforePost devrait fonctionner.

    Hors sujet: il y a 2 f à chauffeur.

    @+ Claudius

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 115
    Points
    115
    Par défaut
    Je n'est pas compris ? c'est quoi sa RDB$DATABASE

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    RDB$DATABASE est une table système qui ne possède qu'un seul enregistrement, et est souvent sollicité sur des instructions select de ce genre.

    C'est en fait une simple astuce.

    @+ Claudius

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 115
    Points
    115
    Par défaut
    Ma May Sa marche
    je vous remercie beaucoup pour votre aide précieuse Claudious
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les champs textes
    Par lechatleon dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 22/08/2009, 16h32
  2. [Cognos 6][Impromptu] Problème avec les champs groupés
    Par nicoduhavre dans le forum Cognos
    Réponses: 4
    Dernier message: 23/03/2007, 15h27
  3. [XHTML] Problème avec les champs obligatoires d'un formulaire
    Par elodie13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 26/09/2006, 14h45
  4. Problème avec les champ obligatoire et liste déroulante
    Par snakejl dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/05/2006, 18h21
  5. Problème avec les champs de type table
    Par devdev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/12/2004, 16h05

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