Une info qd mm pour vous, je vous donne un exemple (Devis par exemple) concernant l'incrémentation automatique grâce à la procédure stocké et trigger.
Code SQL Trigger:
CREATE GENERATOR "GEN_DEVIS_ID";
Code SQL Procédure stocké:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE "SP_GEN_DEVIS_ID"
RETURNS
(
"ID" INTEGER
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE "SP_GEN_DEVIS_ID"
RETURNS
(
"ID" INTEGER
)
AS
BEGIN
ID = GEN_ID(GEN_DEVIS_ID, 1);
END
^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON; |
Et le code source en Delphi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
with DataModule do begin
SP_Devis.StoredProcName := 'SP_GEN_DEVIS_ID';
SP_Devis.Prepare;
try
SP_Devis.ExecProc;
// si c un nouveau employé, donc le code est vide, alors on peut récupérer le code par exemple
if (ECode.Text = '') then begin
ECode.Text := SP_Devis.ParamByName[0].AsString;
end
finally
SP_Devis.UnPrepare;
QDevis.Close;
QDevis.Open;
end;
end; |
Voilà un exemple de code source qui devrait être théoriquement que celà marche.
Sinon, tu peux toujours voir un démo que j'ai réalisé une procédure stocké pour enregistrement ou la modification avec incrémentation automatique dans le forum develloppez.com à l'adresse suivante: http://www.developpez.net/forums/viewtopic.php?t=188169 et celà marche très bien sans faute.
Partager