[D2009] Passer des paramètres à une procédure stockée Oracle avec DBExpress
Je suis en train de tester Delphi 2009, en vue d'une migration depuis Delphi 6.
Jusqu'à présent, j'utilisais le BDE. Je profite de ce changement, pour passer à DBExpress.
Mon problème :
Comment passer des paramètres à une procédure stockée Oracle avec DBExpress ?
Voici comment je m'y prend :
Code:
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 30 31 32 33 34
|
_DBXTransaction: TDBXTransaction;
...
SQLConnection.Open;
...
with StoredProcAjoutContenant do
begin
_DBXTransaction := SQLConnection.BeginTransaction;
Params.ParamByName('NUMEMPLACEMENT').Value := EditC_AjoutEmplacement.Text;
Params.ParamByName('IDTypeCont').Value := EditC_AjoutType.Text;
Params.ParamByName('IDDescCont').Value := EditC_AjoutDesc.Text;
Params.ParamByName('RacineMonoPdt').Value := EditC_AjoutRacineMonoPdt.Text;
Params.ParamByName('FinitMonoPdt').Value := EditC_AjoutFinitMonoPdt.Text;
Params.ParamByName('TypePourQui').Value := EditC_AjoutTypePourQui.Text;
Params.ParamByName('NumPourQui').Value := EditC_AjoutNumPourQui.Text;
Params.ParamByName('IDMontage').Value := EditC_AjoutIDMontage.Text;
Params.ParamByName('Ope').Value := EditC_AjoutOpe.Text;
Params.ParamByName('Supprime').Value := EditC_AjoutSuppr.Text;
try
ExecProc; // <-- ERREUR ICI !
SQLConnection.CommitFreeAndNil(_DBXTransaction);
except
on E: Exception do
begin
SQLConnection.RollbackIncompleteFreeAndNil(_DBXTransaction);
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
end; |
C'est la transcription d'un code fonctionnant sans problème avec le BDE.
Et voici ce que j'obtiens sur le ExecProc : :bug:
Citation:
ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: erreur de conversion des caractères en chiffres
ORA-06512: à ligne 1
Y a t'il quelque chose que j'oublie ?
:hola: