Erreur de syntaxe dans une requête d'insertion

Résolu
lapucedu88 Messages postés 96 Date d'inscription jeudi 1 avril 2004 Statut Membre Dernière intervention 22 mai 2008 - 3 nov. 2005 à 11:46
lapucedu88 Messages postés 96 Date d'inscription jeudi 1 avril 2004 Statut Membre Dernière intervention 22 mai 2008 - 4 nov. 2005 à 13:30
Bonjour tous le monde,

Je suis actuellement en train de réaliser une application pour mon proviseur adjoint. Pour cela j'utilise Delphi7 et une base de données access.

Lorsque je veut ajouter un élève dans la base de données il me dit que j'ai une erreur de synthase dans ma requete or je ne la trouve pas.

Voici ma requete :

IF rg_double.ItemIndex = -1 THEN
showmessage( 'Vous devez dire si l''élève est redoublant en classe de seconde ou non' )
ELSE
IF rg_double.ItemIndex = 0 THEN
sql := 'insert into eleves (double,nom,prenom,college,lv1,lv2,opt1,opt2,opt3,numclasse) values(true'
ELSE
sql := 'insert into eleves (double,nom,prenom,college,lv1,lv2,opt1,opt2,opt3,numclasse) values(false';


sql := sql +','+ quotedstr(e_nom.Text) + ',' + quotedstr(e_prenom.Text);
sql := sql + ',' + quotedstr(e_college.Text) + ',' + quotedstr(e_lv1.Text) + ',' + quotedstr(e_lv2.Text) + ',';
sql := sql + quotedstr(e_opt1.Text) + ',' + quotedstr(e_opt2.Text) + ',' + quotedstr(e_opt3.Text) + ',';
sql := sql + copy( cbclasseeleve.Text, 1, 3 ) + ')';

Mon champ double est de type booleen.
nom,prenom,college,lv1,lv2,opt1,opt2,opt3 sont de type texte.
numclasse est de type entier.

Ma clé primaire est un numéro automatique elle ne figure donc pas dans ma requete.

par la suite je l'éxecute de cette manière :

requete.SQL.Clear;
requete.SQL.Add( sql);
showmessage( requete.sql.text );
requete.ExecSQL;

le texte de ma requete à l'air correcte, se qui fait que je n'arrive pas à trouver mon erreur.

Si quelqu'un arrive à savoir où elle se trouve je le remercie d'avance.

Bisous à tous et bonne prog.

La puce

4 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
4 nov. 2005 à 01:33
Est ce que le problème ne viendrait pas de :

sql := 'insert into eleves( double ,nom,prenom,college,lv1,lv2,opt1,opt2,opt3,numclasse)

Ce ne serait pas un mot réservé par hasard (le type de donnée "double") ???

Si c'était le cas, encadré par des crochets, ça passerait pas ?

sql : = 'insert into eleves([double],nom,prenom,college,lv1,lv2,opt1,opt2,opt3,numclasse)

Cordialement.


<HR>
Il existe 10 catégories de personne. Ceux qui connaissent le binaire et les autres...
3
cs_ebi Messages postés 9 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 25 juillet 2006
3 nov. 2005 à 21:46
Bonsoir lapucedu88,

je ne sais pas beaucoup du delphi, mais je pense,
qu'il y manque une paranthese: values (' xxxxx ' , ' yyy' );
peut etre, je ne vois pas exact le reste de la ligne.
sql := 'insert into eleves (double,nom,prenom,college,lv1,lv2,opt1,opt2,opt3,numclasse) values(true'

Salut
Ebi


Delphi fait plaisir,sonst wäre ich nicht hier.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
3 nov. 2005 à 21:53
A première vue, la chaine de la requête est correcte.

Question : parmi les chaines que tu tentes d'insérer, y en aurait-il
des vides et pour lesquelles le champ cible imposerait d'avoir un
contenu ?

<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
0
lapucedu88 Messages postés 96 Date d'inscription jeudi 1 avril 2004 Statut Membre Dernière intervention 22 mai 2008 1
4 nov. 2005 à 13:30
Effectivement WhiteHippoble problème venait bien de mon champ double. Le fait de changer le nom du champ dans la base permet à ma requête de fonctionne.

Merci à tous ceux qui se sont interressait à mon problème.

Bonne fin de journée à tous le monde et bonne prog.

La puce
0
Rejoignez-nous