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

SQL Firebird Discussion :

Problème avec INSERT


Sujet :

SQL Firebird

  1. #1
    Membre actif
    Inscrit en
    décembre 2004
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 386
    Points : 288
    Points
    288
    Par défaut Problème avec INSERT
    Bonjour à tous,

    Il m'est arrivé une bizarrerie à laquelle je n'ai rien compris !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
               SQL.Text := 'INSERT INTO T_STK_INIT '+
                           '      (ID_ART, ID_DEPOT, DLC, '+
                           '       DATE_SLD, QTE, P_UNIT) '+
                           'VALUES(:ID_ART, :ID_DEPOT, :DLC, '+
                           '       :DATE_SLD, :QTE, :P_UNIT)';
     
                ParamByName('ID_ART').AsInteger      := 1323;
                ParamByName('ID_DEPOT').AsInteger  := -1;
                ParamByName('QTE').AsCurrency        := 12;
                ParamByName('P_UNIT').AsCurrency     := 84;
                ParamByName('DATE_SLD').AsDateTime := StrToDate('01/01/2023');
                ParamByName('DLC').Clear;
                ExecSQL;
    Cette requête ne m'insère pas l'enregistrement dans ma base de données alors qu'il s'insère très bien dans une autre base, de même description !!

    Une idée ??

    Win 10, D7, FB 2.5, Zeos 7.2

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    14 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 14 233
    Points : 38 467
    Points
    38 467
    Billets dans le blog
    59
    Par défaut
    Une contrainte quelconque qui n'est pas respectée (clé en double etc...)
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) ,D11 (Alexandria)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    mai 2002
    Messages
    9 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2002
    Messages : 9 035
    Points : 30 496
    Points
    30 496
    Par défaut
    Bonjour,

    Toute requête qui ne se termine pas correctement émet un message d'erreur.
    Il est important de le récupérer pour pouvoir comprendre l'anomalie et envisager sa correction.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre actif
    Inscrit en
    décembre 2004
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 386
    Points : 288
    Points
    288
    Par défaut
    J'essaie d'insérer un seul record et je n'ai aucun message d'erreur !!

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    14 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 14 233
    Points : 38 467
    Points
    38 467
    Billets dans le blog
    59
    Par défaut
    Il serait quand même simple de faire le test via un GUI quelconque, ou de vérifier que l'enregistrement n'existe pas déjà dans la BDD mais aussi de vérifier l'état de santé de la base de données "fautive"
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) ,D11 (Alexandria)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  6. #6
    Membre actif
    Inscrit en
    décembre 2004
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 386
    Points : 288
    Points
    288
    Par défaut
    Merci Sergio.

    Evidemment que j'ai essayé avec Flame Robin et c'est pareil !!! La base vient d'être créée !

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    14 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 14 233
    Points : 38 467
    Points
    38 467
    Billets dans le blog
    59
    Par défaut
    Alors là, je doute qu'avec Flamerobin ce soit pareil et qu'aucune erreur ne soit affichée.
    Au lieu de gémir, un script création de table + SQL insert serait plus efficace.

    exemple :
    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
     
    CREATE TABLE T_STK_INIT
    (
      ID_ART INTEGER NOT NULL,
      ID_DEPOT INTEGER,
      QTE NUMERIC(10,2),
      PU NUMERIC(10,2),
      DATE_SLD DATE,
      DLC VARCHAR(40),
      CONSTRAINT PK_ART PRIMARY KEY (ID_ART)
    );
    COMMIT;
    INSERT INTO T_STK_INIT(ID_ART, ID_DEPOT, DLC,DATE_SLD, QTE, PU) 
    VALUES (1323,
    1,
    NULL,
    CURRENT_DATE,
    12,84);
    SELECT * FROM T_STK_INIT;
    PS. ce script, plus ou moins déduit, fonctionne parfaitement
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) ,D11 (Alexandria)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    9 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 9 187
    Points : 34 516
    Points
    34 516
    Billets dans le blog
    3
    Par défaut
    Autres pistes :
    • l'ordre SQL n'est pas commité (ROLLBACK transaction)
    • l'INSERT est bien réalisé, mais la connexion n'est pas faite sur la bonne base de données

  9. #9
    Nouveau membre du Club
    Profil pro
    CTO
    Inscrit en
    juillet 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : CTO

    Informations forums :
    Inscription : juillet 2013
    Messages : 18
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    ParamByName('ID_DEPOT').AsInteger := -1;
    Cette ligne est douteuse !

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    14 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 14 233
    Points : 38 467
    Points
    38 467
    Billets dans le blog
    59
    Par défaut
    En quoi le -1 serait douteux ?
    Bien sûr de mon côté un dépot serait codifié dans une table et il y aurait une contrainte de relation, mais la colonne ID_DEPOT étant un entier la valeur peut très bien être négative.

    Un seul doute : nommer les paramètres identiquement aux noms de colonnes (ce qui n'est pas nécessaire) peut être sujet à confusion, mais nous sommes dans le forum Firebird donc, la partie "Delphi", je la mets de côté
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) ,D11 (Alexandria)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  11. #11
    Membre actif
    Inscrit en
    décembre 2004
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 386
    Points : 288
    Points
    288
    Par défaut
    Désolé mes amis de vous apporter, aussi tardivement, la clé du problème !

    Au fait, la table en question était temporaire !!

    Comment ai-je pu la créer de façon temporaire, aucune idée !

    Merci à tous.

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

Discussions similaires

  1. Problème avec insertion image
    Par technopole dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 26/06/2006, 22h45
  2. [VB6] Problème avec insertion d'icônes dans menu
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/03/2006, 22h38
  3. Réponses: 12
    Dernier message: 25/11/2005, 13h29
  4. Réponses: 3
    Dernier message: 10/05/2005, 12h02
  5. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 02h02

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