Erreur syntaxe INSERT INTO

Résolu
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007 - 25 juil. 2007 à 11:07
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007 - 27 juil. 2007 à 10:40
Salut! A chaque fois que j'exécute mon application, j'ai le message 'Erreur de syntaxe dans l'instruction INSERT INTO'...Je ne sais vraiment pas où se trouve l'erreur...

implementation

uses MenuAdmin;

{$R *.dfm}

procedure TUpDateCal.AjoutClick(Sender: TObject);
var Date : string;
begin
    AddDate.Active:=True;
    AddDate.SQL.Clear;
    if (EditDate.Text='') or (EditHeure.Text='') or (EditEpreuve.Text='')
    then Showmessage('La fiche n''a pas été correctement remplie.')
    else
    begin
      Date:=String(MenuGestion.DatedeChampionnat.Keyvalue);
      AddDate.SQL.Add('INSERT INTO CalTable(DateChampionnat,Date,Heure,TypeRencontre) VALUES ("'+Date+'","'+EditDate.Text+'","'+EditHeure.Text+'","'+EditEpreuve.Text+'");');
      AddDate.ExecSQL;
    end;
end;

end.

Merci

19 réponses

Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
27 juil. 2007 à 10:40
Maintenant ça marche...Mais j'ai écrit ça...:

AddDate.SQL.Add('INSERT INTO CalTable VALUES ("'+Date+'","'+EditDate.Text+'","'+EditHeure.Text+'","'+EditEpreuve.Text+'");');
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
25 juil. 2007 à 12:41
Salut,

Dans ces cas là, il peut être judicieux de faire un ShowMessage de ce que tu mets dans ton Add.
0
jelume Messages postés 120 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 15 novembre 2007 1
25 juil. 2007 à 13:03
salut,

Sans doute une valeur non reconnue dans la liste des valeurs de champs.
Les champs utilisés dans ta table sont de quel type?

Et encore une fois, je conseille l'utilisation de requètes paramétrées pour éviter tout problème de passage de date ou de texte comportant des ' ou des "
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
25 juil. 2007 à 15:24
Je vais essayer en param mais par rapport au showmessage...J'ai aucun pb de syntaxe...Du moins que je connaisse...et tous les champs sont des textes...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jelume Messages postés 120 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 15 novembre 2007 1
25 juil. 2007 à 15:33
est-ce que tu pourrais mettre ici un copier-coller de ce que tu affiches avec ShowMessage ?
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
25 juil. 2007 à 15:44
Bonjour,
Le    AddDate.Active:=True; n'est pas nécessaire,
Mais plutôt     AddDate.Active:=False; par précaution ...

Dom
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
25 juil. 2007 à 15:47
Peut être même que c'est de là que vient ton erreur car tu ouvres la requête alors qu'elle est peut être vide ...?

Dom
0
Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 3
26 juil. 2007 à 09:21
Bonjour,

Et la syntaxe des dates. Je ne sais pas quel moteur SQL tu utilises mais moi j'utilise Mysql et les dates doivent être écrite année-mois-jour et les heures heure:minutes:secondes.

C'est peut-être une piste. Sinon, Il faut que tu execute ta commande SQL avec un outils d'execution de commande SQl et là, tu comprendra mieux.

Bon courage

Oniria
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
26 juil. 2007 à 10:00
 Bah je pense que c'est c'que je fais avec ExecSQL nan???...
Franchement je suis passé en param et j'ai revu l'expression mais rien...Ma base de données est sous Access
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
26 juil. 2007 à 10:33
As-tu mis  AddDate.Active:=False; ?

Dom
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
26 juil. 2007 à 10:39
heu ouais il est à false mais quand je veux le passer à true il me sort la même erreur!
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
26 juil. 2007 à 11:51
si tu le mets à True, c'est que tu veux qu'il execute la requete dedans ... si il n'y en a pas : erreur ...

Dom
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
26 juil. 2007 à 11:53
De toute façon ça marche toujours pas...Et je vois toujours pas l'erreur surtout que j'ai fais une requête du même type dans une autre unité et qu'elle marche...
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juil. 2007 à 12:07
Je plussois jelume : svp montre nous ce que tu obtiens avec le ShowMessage.
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
26 juil. 2007 à 12:25
g un affichage très étrange:   ,_A
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
26 juil. 2007 à 12:32
Heu nan...J'avais utilisé la mauvaise fonction...
Donc comme affichage j'ai:
INSERT INTO CalTable(DateChampionnat,Date,Heure,TypeRencontre) VALUES ("18/10/2006","a","a","a");
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juil. 2007 à 14:35
Tu peux essayer de suivre la piste de Oniria :
Essaye d'écrire correctement ce que tu met dans tes date et dans ton heure.

qqch comme ça :

AddDate.SQL.Add('INSERT INTO
CalTable(DateChampionnat,Date,Heure,TypeRencontre) VALUES
("18-10-2007","18-10-2007","11:11:11.222'","Blah Blah");');
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juil. 2007 à 14:40
J'ai foiré au moins un guillemet...
Et visiblement y a pas besoin des milliseconde
(Gaffe au paramètre régionaux aussi...)
AddDate.SQL.Add('INSERT INTO
CalTable(DateChampionnat,Date,Heure,TypeRencontre) VALUES
("18-10-2007","18-10-2007","11:11:11","Blah Blah");');
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
27 juil. 2007 à 10:22
Même avec ça j'ai une erreur...C'est désespérant...
0
Rejoignez-nous