pb exec procédure stockée
bonjour les développeurs fous,
je me frotte aux procédures stockées avec Delphi 2007 et MySQL.
Mais si je suis là c'est que je n'y arrive pas ! Of course j'utilise un composant tsqlstoredproc pré initialiser avec le nom de la procédure stockée et les paramètres pré déclarés0
Voici pour commencer le message d'erreur de Delphi :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EmptyTable' at line 1
Voici ma procédure stockée :
Citation:
delimiter $$
DROP procedure IF EXISTS benef_update $$
CREATE PROCEDURE
`benef_update`
(vbenefid INTEGER, vprenom VARCHAR(100),vnom VARCHAR(100),vnaissance VARCHAR(100),
vactif INTEGER,vsiteid INTEGER,vparente INTEGER)
BEGIN
UPDATE `benefici` SET `benef_nom` = Vnom , `benef_prenom` = vprenom ,
`vbenef_naissance` = vnaissance , `benef_actif` = vactif , `benef_siteid` = vsiteid ,
`benef_parente` = vparente WHERE `benef_id` = vbenefid;
end $$
delimiter ;
Voici mon code delphi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
with DM.Proc_Benef_Update do
begin
Params.ParamByName('vbenefid').Value := Benef_Record.id;
Params.ParamByName('vprenom').Value := Trim(benef_Editnom.text);
Params.ParamByName('vnom').Value := Trim(benef_Editnom.text);
if Trim(benef_EditNaiss.Text) = '' then Params.ParamByName('vnaissance').Value := '';
if Trim(benef_EditNaiss.Text) <> '' then Params.ParamByName('vnaissance').Value := ValideDate(Trim(benef_EditNaiss.Text));
if CaseActif.Checked = True then Params.ParamByName('vactif').Value := 1;
if CaseActif.Checked = False then Params.ParamByName('vactif').Value := 0;
Params.ParamByName('vsiteid').Value := Integer(ListSites.Items.Objects[ListSites.itemindex]);
Params.ParamByName('vparente').Value := Integer(Benef_ListParentes.Items.Objects[Benef_ListParentes.itemindex]);
Try
ExecProc;
Except
on E:Exception do
Begin
MessageDlg(E.Message,mtError, [mbok],0 );
Exit;
end;
End;
end; |
1000 mercis de votre aide.
Dimitri