Erreur syntaxe INSERT INTO [Résolu]

Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
- - Dernière réponse : Guenky
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
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
Afficher la suite 

Votre réponse

19 réponses

Meilleure réponse
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
3
Merci
Maintenant ça marche...Mais j'ai écrit ça...:

AddDate.SQL.Add('INSERT INTO CalTable VALUES ("'+Date+'","'+EditDate.Text+'","'+EditHeure.Text+'","'+EditEpreuve.Text+'");');

Merci Guenky 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Guenky
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Salut,

Dans ces cas là, il peut être judicieux de faire un ShowMessage de ce que tu mets dans ton Add.
Commenter la réponse de cs_rt15
Messages postés
122
Date d'inscription
mardi 3 avril 2007
Dernière intervention
15 novembre 2007
0
Merci
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 "
Commenter la réponse de jelume
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
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...
Commenter la réponse de Guenky
Messages postés
122
Date d'inscription
mardi 3 avril 2007
Dernière intervention
15 novembre 2007
0
Merci
est-ce que tu pourrais mettre ici un copier-coller de ce que tu affiches avec ShowMessage ?
Commenter la réponse de jelume
Messages postés
446
Date d'inscription
vendredi 7 novembre 2003
Dernière intervention
8 octobre 2008
0
Merci
Bonjour,
Le    AddDate.Active:=True; n'est pas nécessaire,
Mais plutôt     AddDate.Active:=False; par précaution ...

Dom
Commenter la réponse de dominique.stock
Messages postés
446
Date d'inscription
vendredi 7 novembre 2003
Dernière intervention
8 octobre 2008
0
Merci
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
Commenter la réponse de dominique.stock
Messages postés
297
Date d'inscription
dimanche 14 mars 2004
Dernière intervention
18 décembre 2014
0
Merci
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
Commenter la réponse de Oniria
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
 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
Commenter la réponse de Guenky
Messages postés
446
Date d'inscription
vendredi 7 novembre 2003
Dernière intervention
8 octobre 2008
0
Merci
As-tu mis  AddDate.Active:=False; ?

Dom
Commenter la réponse de dominique.stock
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
heu ouais il est à false mais quand je veux le passer à true il me sort la même erreur!
Commenter la réponse de Guenky
Messages postés
446
Date d'inscription
vendredi 7 novembre 2003
Dernière intervention
8 octobre 2008
0
Merci
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
Commenter la réponse de dominique.stock
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
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...
Commenter la réponse de Guenky
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Je plussois jelume : svp montre nous ce que tu obtiens avec le ShowMessage.
Commenter la réponse de cs_rt15
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
g un affichage très étrange:   ,_A
Commenter la réponse de Guenky
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
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");
Commenter la réponse de Guenky
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
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");');
Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
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");');
Commenter la réponse de cs_rt15
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Dernière intervention
9 août 2007
0
Merci
Même avec ça j'ai une erreur...C'est désespérant...
Commenter la réponse de Guenky

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.