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;
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 "
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...
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.
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
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...
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");
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");');