Bonjour à tous,

j'utilise Delphi 6 avec Oracle 9.2 et mon code retourne des erreurs lors d'appel de procédures stockées avec le composant TSqlStoredProc (sp).

Précisément, Delphi retourne une exception "EBcdOverflowException", lorsque j'utilise l'un des codes suivants

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sp.params[0].AsInteger := IntVal; (valeur integer) 
sp.execproc; ---> error
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Params[0].DataType := ftInteger; 
sp.params[0].Value := IntVal; 
sp.execproc; ---> error
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sp.parambyname('xxx').AsInteger := IntVal; 
sp.execproc; ---> error

Par contre, je n'ai pas d'erreur avec le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sp.params[0].Value := IntVal; (valeur integer) 
sp.execproc; ---> OK
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sp.params[0].AsString := StrVal; (valeur string) 
sp.execproc; ---> OK

Selon vous, pourquoi mon code ne marche-t-il pas avec AsInteger ?


Remarques:
1- sp.params[0].Value := IntVal;
sp.execproc;

ne retourne pas d'erreur pour des valeurs IntVal allant de 1 à 5
et retourne une erreur pour des valeurs > 5

2- ce même code (càd sp.params[0].AsInteger := IntVal) marche avec une base Interbase


Merci de votre aide