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 :

Erreur SQL 82086 lors d'une insertion


Sujet :

Bases de données Delphi

  1. #1
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut Erreur SQL 82086 lors d'une insertion
    Salut à tous,

    Je dois inserer des données dans une base SQL Server 2000.
    J'utilise une requête paramétrée pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSER INTO TABLE (
    VAL1,VAL2 ....VALn)
    VALUES(
    :PVAL1,:PVAL2,..,:PVALn)
    Je renseigne les paramètres par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MyQuery.Parameters.ParamByName('PVAL1').Value := valeur1;
    ...
    MyQuery.Parameters.ParamByName('PVALn').Value := valeurn;
    MyQuery.ExecSql;
    Mais j'ai cette erreur dès que je tente d'executé la requête :
    RAISEERROR ne peut pas localiser l'entrée dans sysmessages pour l'erreur 82086.
    D'où peut venir l'erreur ?

    Merci
    On progresse .....

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Difficille de dire avec le code que tu présente.

    Voici peut être une piste de recherche.
    Si tu utilise les ADO, je te dirais de regarder les types de tes paramêtres, afin de controler qu'ils sont cohérents avec ta strucute de table SQL.

    Il arrive parfois que l'évaluation faite par paramcheck , ne corresponde pas.
    Il faudra si tel est le cas alors que tu forces le type et/ou éventuellement passe le paramcheck à false et definisse toi même tes type.

    Tu peux si tu veux en avoir le coeur net ,après avoir affecter tes paramêtres (et avant ton exesql) de placer le code suivant pour controler type de tes parametres.

    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var
     ....
     I, Nbparam: integer;
      AfficheParam: string;
    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
     
          ............
          SQL.Add('insert .............values (:1,.......)');
          parameters.ParamByName('1').Value:=...;
          parameters.ParamByName('2').Value:=...;
          ...........
          nbparam := Parameters.Count;
          if Parameters.Count > 0 then
          begin
            for i := 0 to nbparam - 1 do
            begin
              AfficheParam := AfficheParam + #13#10 +'Le paramêtre '+trim(Parameters[i].name + ' (' +
                inttostr(i) + ') de type ');
              AfficheParam := AfficheParam + ' ' + getenumname(typeinfo(tdatatype),
                ord(Parameters[i].DataType));
              AfficheParam := AfficheParam + '=' + trim(Parameters[i].value);
            end
     
          end else AfficheParam:='Aucun paramêtre';
            ShowMessage(AfficheParam);
        end;
    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  3. #3
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Effectivement, le problème vient du paramètre.
    En effet, je developpe un logiciel qui accède à la base SAGE SQL 100; analyse les articles dans un dépôt spécifique : liste les articles dont le stock sont inférieur à stock mini et effectue un virement de dépôt à dépôt à partir d'un dépôt spécifié.
    Quand j'ai analyser la structure de la base, j'ai omis certain champs et effectivement, l'erreur vient du fait qu'il faut mettre une valeur.
    Maintenant, tout fonctionne.

    Merci de t'être penché sur mon cas.
    On progresse .....

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/05/2014, 16h52
  2. erreur lors d'une insertion
    Par poula dans le forum Oracle
    Réponses: 1
    Dernier message: 24/12/2006, 18h07
  3. Erreur lors d'une insertion
    Par chleuh dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/11/2006, 07h36
  4. [Trigger] Erreur 1136 lors d'une insertion
    Par tyrant dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/05/2006, 21h41
  5. Lenteur lors d'une insertion (sql server)
    Par shiners300 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/09/2005, 09h09

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