Encore une erreur d'INSERt [Résolu]

Signaler
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007
-
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
-
C'est la seconde fois ,que je viens pour cette erreur...autre part dans le prog...:
Add.SQL.text:='INSERT INTO Participants(Nom, Prenom, Sexe, Categorie, DateNaissance, Adresse,Telephone,Club,NoDossard,Brasse,Relais Brasse,Crawl,Relais Crawl,Equipe,DateEnregistrement,DateChampionnat) Values ("'  +EditNom.Text+  '","'  +EditPrenom.Text+  '","'  +Sexe+ '","' +Categoria+ '","' +DateNais+ '","' +EditAddr.Text+ '","' +EditTel.Text+ '","' +EditClub.Text+ '","' +strNoDossard+ '","' +Rep1+ '","' +Rep2+ '","' +Rep3+ '","' +Rep4+ '","' +EditEquipe.Text+ '","' +DateToStr(Now)+ '","' +Date+ '");';

Tous les champs sont text a part le champ Id qui est la clé primaire de ma table et les champs Brasse,Crawl et les 2 Relais qui sont des champs oui/non......D'ailleurs les valeurs des Repx sont oui ou non...
Merci...

28 réponses

Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
alors deja, c'est QuotedStr, et ce qu'on veux c'est pas le code dans delphi mais l'evaluation de ta requete :
1 - mettre un point d'arret sur la ligne de ta requete
2 - demarrer ton application
3 - aller a l'endroit ou est execute le code qui ne marche pas
4 - là, magie, l'application s'arrete et se met en attente sur le point d'arret
5 - menu "executer => pas à pas" pour ajouter la requete à ta query
7 - menu "Executer => Evaluer/Modifier"
8 - marquer dans l'edit superieur "Sql.text"
9 - cliquer sur evaluer
10 - selectionner tout le texte qui s'est affiché dans  l'edit du milieu
11 - copier ce texte (grace a la subtile cominaison de touches <Ctrl+C> )
12 - ouvrir ton navigateur internet
13 - naviguer jusqu'a ce sujet
14 - coller le texte dans la fenetre "participer a cet echange"
15 - cliquer sur "Ajouter"
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

erreur dans la syntaxe de Insert into...
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
un petit resultat de l'evaluation de ta requete nous aiderai grandement ...
sinon essaye de l'executer directement dans ton gestionnaire de BD voir ce qui se passe exactement.
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Bonjour,
Le code , le message de l'erreur ?

Dom
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

QuoteStr n'est pas reconnu par mon compilateur...
le code et le message d'erreur sont marqué plus haut
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Excuses, si c'est une erreur de syntaxe, il serait effectivement interressant d'avoir l'ordre exacte SQL ....

Dom
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Et essaye avec "quotedstr"

Dom
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Je vérifie mes bases...C'est bien:
INSERT INTO Table(ColTable1,ColTable2) VALUES ("+QuotedStr(mastring)+",MonInt);

???

Et aussi concernant les champs oui/non sous Access...Quelles valeurs faut-il entrer?
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Exception Delphi EOleException à $D4EF949
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Et l'ordre SQL ?


Try ...


except on e:exception do showmessage (e.message+#13#10+Query.sql.text) end;

Dom
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

j'ai fait Add.ExecSQL
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

  Add.SQL.Clear;
  Add.SQL.text:='INSERT INTO Participants(Nom,Prenom,Sexe,Categorie,DateNaissance,Adresse,Telephone,Club,NoDossard,Brasse,RelaisBrasse,Crawl,RelaisCrawl,Equipe,DateEnregistrement,DateChampionnat) Values ("'+EditNom.Text+'","'+EditPrenom.Text+'","'+Sexe+ '","' +Categoria+ '","' +DateNais+ '","' +EditAddr.Text+ '","' +EditTel.Text+ '","' +EditClub.Text+ '","' +strNoDossard+ '","' +Rep1+ '","' +Rep2+ '","' +Rep3+ '","' +Rep4+ '","' +EditEquipe.Text+ '","' +DateToStr(Now)+ '","' +Date+ '");';
  showmessage(add.SQL.text);
  Add.ExecSQL;
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
et alors, le showmessage t'affiche quoi?

PS : tu peux faire un ctrl+c sur le showmessage
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
ET LE QUOTEDSTR !!!!





Dom
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Pour que j'utilise le quotedstr j'ai demandé comment je m'y prends j'ai pas eu de réponse...
Quotedstr(maman)='maman'  ...C'est ça???
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Et je fais quoi des doubles cotes???
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
F1 (Ca donne l'aide dans delphi .... )

Dom
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
bon ... tu va le balancer le resultat de ton showmessage ????
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Type de données incompatibles avec l'expression des critères !
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
sql.add(' insert into table values ('+quotedstr(valeur)+')');

Cela t'évites de faire des erreurs dans les guillemets.

Sinon, si tu utilises ACCESS, si tu as des noms de champs ou de tables avec des espaces, essaies de les mettres entre [ ] dans ta requête ....

Et quand on te demandes une info tel que l'ordre SQL exact et que l'on te donne deux façons de procéder  c'est pas pour t'embêter ...

Si tu ne comprends pas ce que l'on te dit n'hésites pas à demander, tu débutes, tout le monde et passé par là ...
Mais il n'y a pas de divination possible ...

NB: Pour f1, tu met le curseur sur la fonction, l'objet  pour lequel tu souhaite de l'aide et tu appuies dessus .

Dom