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 SQL Discussion :

Echec d'une requête d'insertion


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut Echec d'une requête d'insertion
    Bonjour tlm,

    Je suis en train d'utiliser un utilitaire qui me permet d'archiver des données dans SQL Server et il marche bien jusqu'à ce qu'il me sort le message suivant:

    Line 1: Incorrect syntax near '³'.
    State: 42000, Native: 170, Source: Microsoft OLE DB Provider for SQL Server
    Ensuite, il crashe.

    Est ce que quelqu'un aurait une idée concernant le message d'erreur ou peut être une piste qui pourrait m'aider?

    Merci d'avance.

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 63
    Points : 71
    Points
    71
    Par défaut
    tu peux commencer par tracé la requete qui tombe en erreur et nous la faire partager

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Je n'ai pas accès aux codes source de l'utilitaire. Je sais juste que c'est une requête d'insertion.

    J'aimerais avoir le plus d'informations possibles concernant le message d'erreur.

    Merci.

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    euh... sans plus d'informations, difficile d'en dire plus...
    on peut dire que c'est une erreur de syntaxe mais je ne vois pas quoi dire d'autres avec le peu d'informations.... désolé

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Est ce que vous pouvez en déduire que c'est une erreur de syntaxe dans la requête ou bien dans les données que l'utilitaire est en train d'insérer?

    Merci.

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 081
    Points : 30 831
    Points
    30 831
    Par défaut
    Citation Envoyé par mambo Voir le message
    Je suis en train d'utiliser un utilitaire qui me permet d'archiver des données dans SQL Server et il marche bien jusqu'à ce qu'il me sort le message suivant: [...]Ensuite, il crashe.
    Citation Envoyé par mambo Voir le message
    Est ce que vous pouvez en déduire que c'est une erreur de syntaxe dans la requête ou bien dans les données que l'utilitaire est en train d'insérer?
    Si l'erreur était dans la requête, aucun traitement ne serait effectué...
    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.

  7. #7
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Donc il y a un caractère spécial dans les données insérés? Est ce qu'il existe une liste des caractères qui peuvent créer ce genre d'erreur?

    Merci.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    Line 1: Incorrect syntax near '³'.
    ça ressemble plutôt à un exposant,je pense que tu avais vu mais je peux pas t'aider plus
    ...

  9. #9
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Le problème est que les données que je suis en train d'archiver sont des entiers et des réels et ne contiennent pas d'exposant.

    Une idée? ou même une piste, je suis désespérée?

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    mets un exemple de données que tu inséres, ça nous mettra peut être sur la voie parce que avec ce qu'on sait et sans code, ça va être dur
    ...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    j'ai touvé ça
    commande permission denied on object
    nom_objet, database nom_basededonnées,
    owner nom_propriétaire.
    42000 Se produit quand un utilisateur tente
    d’accéder à un objet auquel il n’est pas
    autorisé à accéder.

    je ne suis pas sûr que ça corresponde à ton erreur mais c'est ce qui correspond à state 42000
    ...

  12. #12
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Merci pour le document.

    Mais il y a plusieurs cas où l'erreur State 42000 peut se produire. Je crois que mon cas de figure correspond au troisième cas de la page 306.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    Citation Envoyé par mambo Voir le message
    Merci pour le document.

    Mais il y a plusieurs cas où l'erreur State 42000 peut se produire. Je crois que mon cas de figure correspond au troisième cas de la page 306.
    oui mais ça aide pas plus pour autant
    merci aux messages clairs de sql server et à ses codes erreur
    ...

  14. #14
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    J'ai pu avoir accès aux source codes de l'utilitaire mais il est très compliqué et mal organisé. Il est dévélopé en VS C++.

    Je ne sais pas où commencer chercher. Une idée?

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    je n'ai pas fait de c++ depuis ma formation
    mais essaie de rechercher "insert" (la commande sql qui pose pb je crois) dans ton éditeur de code
    ...

  16. #16
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    J'ai trouvé la requête:

    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
     
    SQL = "INSERT INTO " + TableName + " VALUES(";
       if(SIDs == 1)
        SQL = SQL + "'" + Prog + "'";
       if(SNode == 1)
       {
        if(SIDs == 1)
         SQL  = SQL + ",'" + Address + "'";
        else
         SQL  = SQL + "'" + Address + "'";
       }
       if(GpName == 1)
       {
        if((SIDs == 1) || (SNode == 1))
         SQL  = SQL + ",'" + GName + "'";
        else
         SQL  = SQL + "'" + GName + "'";
       }
       if((SIDs == 1) || (SNode == 1) || (GpName == 1))
        SQL  = SQL + ",'" + ItemName + "'";
       else
        SQL  = SQL + "'" + ItemName + "'";
       if(ItemState == 1)
        SQL = SQL + ",'" + State + "'";
       if(ItemAP == 1)
        SQL = SQL + ",'" + AP + "'";
       if(ItemDataType == 1)
        SQL = SQL + ",'" + Type + "'";
       if(ItemValue == 1)
        SQL = SQL + ",'" + Value + "'";
       if(ItemQuality == 1)
        SQL = SQL + ",'" + Quality + "'";
       if(ItemAR == 1)
        SQL = SQL + ",'" + AR + "'";
       if(ItemTS == 1)
       {
        if((TS == "N/A") || (TS == "n/a"))
        {
         SQL = SQL + ",NULL";
         SQL = SQL + ",0";
        }
        else
        {
         SQL = SQL + ",'" + TS + "'";
         SQL = SQL + "," + TS_MS;
        }
       }
       if(ItemModeRead == 1)
       {
        SQL = SQL + ",'" + ReadMode + "'";
       }
       SQL = SQL + ")";
       }
    C'est du chinois.

    J'ai détecté les données que je suis en train d'insérer: Value, Quality et TS.

    Une piste?

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    je pense qu'ils concatènent à sql la value qu'ils veulent insérer, le problème c'est qu'on dirait qu'il n'y a qu'un champ dans tablename,
    je ne vois pas où ils changent le nom des champs qu'ils veulent insérer ni le nom de la table
    de plus, je ne vois pas trop où je t'ai menée avec ces explications qui ne servent à rien pour résoudre ton pb

    on retrouve bien tes champs mais le message d'erreur ne dit pas quel champ pose pb ni où est '³' (enfin, Line 1 devrait être la requête)
    essaie de montrer les valeurs que tu essaies d'insérer si c'est possible, parce que là, je ne vois pas comment trouver la solution à ton pb
    ...

  18. #18
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Est ce que tu peux m'explique la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO " + TableName + " VALUES("
    Qu'est ce ça veut dire "VALUES"?

    Merci d'avance.

  19. #19
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 63
    Points : 71
    Points
    71
    Par défaut
    Tous ce que je peux faire c'est d'interpreter ta requete et de te la donnée sous une forme plus exploitable !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO varTableName VALUES(varProg, varAddress, varGName, varItemName, varState, varAP, varType, varValue, varQuality, varAR, varTS, varTS_MS, varReadMode)
    toutes les valeurs devant etre inséré sont contenu dans des variables (ou sont mise en dure si elles repondent a certaines condition IF)
    a toi de voir leur valeur (pour info le nom des variables corresponds au nom que j'ai mit avec 'var' en moins cet indicateur etait la juste pour dire que ce sont des variables !)

    En passant regarde voir dans la table si je n'ai pas oublié un champ

    Le VALUES correspond aux valeurs que tu vas affecter au différent champs et dans l'ordre dans lesquels ils sont dans la table mais tu dois impérativement avoir autant de valeur apres le 'VALUES(' que de champs contenu dans ta table... Les valeurs doivent etre séparé d'une virgule !

  20. #20
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    regarde comment on utilise le 'INSERT' et tu verras à quoi sert VALUES ...

Discussions similaires

  1. Execution d'une requête SQL INSERT
    Par damien27000 dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/07/2007, 21h35
  2. Problème d'une requête SQL INSERT
    Par bejaad dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/07/2007, 12h53
  3. [VB.NET/Access] Problème avec une requête d'insertion
    Par Bladinou dans le forum Accès aux données
    Réponses: 8
    Dernier message: 29/05/2007, 18h06
  4. Réponses: 3
    Dernier message: 08/05/2007, 17h32
  5. Optimisation d'une requête d'insertion
    Par fdraven dans le forum Oracle
    Réponses: 15
    Dernier message: 01/12/2005, 14h00

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