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 : 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
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 :
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 ?