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 :
Voici mon code delphi :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 ;
1000 mercis de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Dimitri
Partager