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

Bases de données Delphi Discussion :

delphi procedure stockée


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut delphi procedure stockée
    j'ai une erreur E2171 la variable self est inaccessible ici du fait de l'optimisation, voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if qPost.State = dsInsert then
        begin
          proc1.ExecProc;
          qPost.FieldByName('idpost').AsInteger := proc1.FieldByName('NEW_VALUE').AsInteger;
        end;
    Dans ma base interbase idpost est declaré comme integer autoinc

  2. #2
    Membre émérite Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Par défaut
    Ta procédure stockée renvoie comment les données ?

  3. #3
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    Voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN
      NEW_VALUE = GEN_ID(POST_IDPOST_GEN, 1);
    END

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 938
    Billets dans le blog
    6
    Par défaut
    n'est-ce pas étrange d'affecter une valeur à un champ (idpost) autoincrémenté ?
    mais les BDD ne sont pas mon domaine !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 938
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 938
    Par défaut
    Cette erreur est une erreur du debuger et n'a rien à voir avec le code.
    Tu as mis un point d'arrêt et tu essayes de connaître la valeur d'une variable qui n'est plus considérée comme "vivante" (le point d'arrêt est placé après la dernière utilisation de cette variable).

    Soit tu remontes ton point d'arrêt de plusieurs lignes, soit tu édites les options du projet et tu décoches Optimisation dans la section Compilateur.

  6. #6
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    là j'ai enlevé le point d'arrêt j'ai ce messsage d'erreur :
    violation of PRIMARY or UNIQUE KEY constraint "INTEG_30" on Table "Post"

    j'essayais de cherher d'où venait l'erreur c'est pour cela que j'ai mis le point d'arrêt.
    j'essaye de créer un autoinc avec interbase comme il ne le gere pas j'ai du passer par cette procedure

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 938
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 938
    Par défaut
    Il te manque peut-être alors simplement un +1.

    Le message te dit que tu essayes d'insérer une nouvelle ligne avec une valeur qui est déjà utilisée dans la colonne idpost. (champ qui doit être unique à travers toute la base de données)

  8. #8
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    peut être avec un suspend
    Citation Envoyé par colfire_dev Voir le message
    Voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BEGIN
      NEW_VALUE = GEN_ID(POST_IDPOST_GEN, 1);
      suspend; 
    END
    pour ma part je ne préfére pas utilisé TIBProc, et pour le incrémént, 3 possibilité
    1-tu laisse le composant IBQuery le géré (Generatorfield)
    2-utilisation de trigger
    3-dans le TIBquery directrement dans la propriété insertquery t'as par example
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into VILLES
      (CODE, VILLE)
    values
      (GEN_ID(POST_IDPOST_GEN, 1), :VILLE)

  9. #9
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    oh! merci Edam avec la requête insert ça marche impeccable .
    Pour ma curiosité j'aimerais savoir si ces différentes manières de gérer l'autoinc différent en performance ou en faisabilité

  10. #10
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    Citation Envoyé par colfire_dev Voir le message
    oh! merci Edam avec la requête insert ça marche impeccable .
    Pour ma curiosité j'aimerais savoir si ces différentes manières de gérer l'autoinc différent en performance ou en faisabilité
    Attention avec la 2éme et 3éme méthode , si tu doit utilisé ce champs directement aprés insert je crois que tu doit réouvrir ton TIBQuery,

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/09/2009, 11h41
  2. Erreur creation procedure stockées (Firebird1.5+delphi 7)
    Par nassoft dans le forum Bases de données
    Réponses: 3
    Dernier message: 18/05/2007, 12h30
  3. Procedure Stocké sous FB et execution sous Delphi
    Par Andry dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/07/2006, 15h02
  4. [Firebird D7] Modifier une procedure stocké via Delphi
    Par EGI dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 30/03/2005, 15h54
  5. créer une procedure stockée sous delphi
    Par gudul dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/11/2004, 14h06

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