cs_cmoimeme
Messages postés28Date d'inscriptionmardi 14 octobre 2003StatutMembreDernière intervention 3 septembre 2006
-
8 mai 2006 à 13:35
cs_cmoimeme
Messages postés28Date d'inscriptionmardi 14 octobre 2003StatutMembreDernière intervention 3 septembre 2006
-
8 mai 2006 à 21:19
Bonjour,
J'ai crée un programme de gestion, dans ce programme j'ai deux boutons ajouter et modifier, mais le probleme c'est que mes boutons fonctionnent pas il me marque une erreur sur les deux boutons lorsque je fais Executer(F9).
Erreur de syntaxe dans l'instruction UPDATE. (pour le bouton modifier).
Erreur de syntaxe dans l'instruction INSERT INTO. (pour le bouton Ajouter)
Ce que je comprends pas c'est que j'ai ecris presque le même code avec une autre Form ouil y avait un bouton Ajouter et modifier j'ai recopié exactement la même syntaxe mais en vain il y a toujours une erreur.
Voici le code en question où il y a erreur
procedure TPersonnel.BitBtn1Click(Sender: TObject);
begin
if (edit1.text='') or (edit2.text='') or (edit3.text='') or (edit4.text='')
or (edit6.text='') or (edit7.text='') or (edit8.text='') or (edit9.text='') or (edit10.text='') then
begin
messagedlg('Tous les champs ne sont pas remplis',mtWarning,[mbok],0);
end
else
with DataModule5.ADOQ_Personnel do
begin
SQL.Clear;
SQL.Add('INSERT INTO PERSONNEL');
SQL.Add('(JUSTIFICATION,NOM,PRENOM,ADRESSE,CODE_POSTAL,LOCALITE,DATE,MATRICULE,TELEPHONE)');
SQL.Add(format('values(''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'')',
[edit1.Text,edit2.text,edit3.Text,edit4.text,edit6.text,edit7.text,edit8.text,edit9.text,edit10.text]));
ExecSQL;
begin
with DataModule5.ADOQ_Fonction do
begin
SQL.Clear;
SQL.Add('SELECT * FROM Personnel ORDER BY NOM');
Open;
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit7.text:='';
edit8.text:='';
edit9.text:='';
edit10.text:='';
end;
messagedlg('Ajout réussi',mtWarning,[mbok],0);
Personnel.Visible:=false;
Importation_Personnel.visible:=true;
end;
end;
end;
procedure TPersonnel.BitBtn2Click(Sender: TObject);
begin
with DataModule5.ADOQ_Personnel do
begin
SQL.Clear;
SQL.Add('UPDATE PERSONNEL set JUSTIFICATION=:Justification, NOM=:Nom, PRENOM=:Prenom, ADRESSE=:Adresse, CODE_POSTAL=:Code_Postal, LOCALITE=:Localite, DATE=:Date, MATRICULE=:Matricule, TELEPHONE=:Telephone');
SQL.Add('WHERE JUSTIFIC1ATION=:OldType and NOM=:OldType1 and PRENOM=:OldType2 and ADRESSE=:OldType3 and CODE_POSTAL=:OldType4 and LOCALITE=:OldType5 and DATE=:OldType6 and MATRICULE=:OldType7 and TELEPHONE=:OldType8');
Parameters.ParamByName('Justification').Value:=edit1.Text;
Parameters.ParamByName('OldType').Value:=OldType;
Parameters.ParamByName('Nom').Value:=edit2.Text;
Parameters.ParamByName('OldType1').Value:=OldType1;
Parameters.ParamByName('Prenom').Value:=edit3.Text;
Parameters.ParamByName('OldType2').Value:=OldType2;
Parameters.ParamByName('Adresse').Value:=edit4.Text;
Parameters.ParamByName('OldType3').Value:=OldType3;
Parameters.ParamByName('Code_Postal').Value:=edit6.Text;
Parameters.ParamByName('OldType4').Value:=OldType4;
Parameters.ParamByName('Localite').Value:=edit7.Text;
Parameters.ParamByName('OldType5').Value:=OldType5;
Parameters.ParamByName('Date').Value:=edit8.Text;
Parameters.ParamByName('OldType6').Value:=OldType6;
Parameters.ParamByName('Matricule').Value:=edit9.Text;
Parameters.ParamByName('OldType7').Value:=OldType7;
Parameters.ParamByName('Telephone').Value:=edit10.Text;
Parameters.ParamByName('OldType8').Value:=OldType8;
ExecSQL;
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 8 mai 2006 à 18:43
DATE est un mot réservé du langage SQL !!!!
Si tu veux l'utiliser malgré tout( quoique ça va te pourrir la vie) mets le entre guillemets doubles.
JUSTIFICATION,NOM,PRENOM,ADRESSE,CODE_POSTAL,
LOCALITE,DATE,MATRICULE,TELEPHONE)
Le mieux est de renommer ta colonne.
May Delphi be with you !
<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
for i:=1 to 10 do
tedit(personnel.findcomponent('edit'+inttostr(i))).clear;
à condition de déclarer une variable integer nommée i et que ta form s'appelle personnel, sinon tu remplace personnel par le composant parent de tes TEdit...
Voilà ... c'était juste un petit conseil en passant... par plaisir d'aider...
sisi231
Messages postés207Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention29 mars 20135 8 mai 2006 à 14:42
Je sais que le pb n'est pas là : c'était juste pour dire...
Un pb que je vois c'est qu'entre tes 2 SQL.Add il n'y a pas d'espace.
Exemple :
dans :
SQL.Add('UPDATE PERSONNEL set JUSTIFICATION=:Justification, NOM=:Nom, PRENOM=:Prenom, ADRESSE=:Adresse, CODE_POSTAL=:Code_Postal, LOCALITE=:Localite, DATE=:Date, MATRICULE=:Matricule, TELEPHONE=:Telephone');
SQL.Add('¤WHERE JUSTIFIC1ATION=:OldType and NOM=:OldType1 and PRENOM=:OldType2 and ADRESSE=:OldType3 and CODE_POSTAL=:OldType4 and LOCALITE=:OldType5 and DATE=:OldType6 and MATRICULE=:OldType7 and TELEPHONE=:OldType8');
A l'endroit du rond rouge je rajouterais un espace.