BCB:从BDE到dbexpress,BCD异常

时间:2011-01-11 21:06:53

标签: oracle porting dbexpress bde

我遇到一些关于TSQLStoredProcedure的问题。这是代码:

storedproc->ParamByName("A")->AsInteger = adataset->FieldByName("AA")->AsInteger;
storedproc->ExecProc();

param“A”在表单中声明为整数(并且在程序中为29)。此外,存储过程没有错误。我敢肯定。数据库是Oracle 11g。顺便说一下,当执行storedproc时发生了异常:

... 
EBcdException with message '<0000001:000000010000000:00000063612>' is not a valid BCD value
...

所有这些都与BDE一起运行良好但是现在,使用dbexpress,存在这个问题。我在互联网上搜索了几天,但没有找到答案。

我提前感谢你,请原谅我的英语。

弗朗西斯

更新

我在网上搜索过。我发现了一些有趣的东西:

https://forums.codegear.com/thread.jspa?messageID=43223&tstart=0 http://www.delphigroups.info/2/8/750511.html

我决定做一些测试:

SQLQuery->ParamByName("f1")->AsString = Edit1->Text;
SQLQuery->ExecSQL();

有效。

不一样
SQLQuery->ParamByName("f1")->AsInteger = StrToInt(Edit1->Text);       //ERROR DBX Error: Invalid Field Type.
SQLQuery->ParamByName("f1")->AsFloat = StrToFloat(Edit1->Text);      //ERROR DBX Error: Invalid Field Type.
SQLQuery->ParamByName("f1")->AsBCD = StrToInt(Edit1->Text);          //ERROR ORA-06502: PL/SQL: error: ... ORA-06512: at line 1.
SQLQuery->ParamByName("f1")->AsFMTBCD = StrToBcd(Edit2->Text); //ERROR ORA-06502: PL/SQL: error: ... ORA-06512: at line 1.

或使用TSQLStoredProc。 所以现在我通过TSQLQuery调用我的pl / sql存储过程。我使用“AsString”将值传递给参数。奇怪的。 dbexpress地图类型如何?提前谢谢。

0 个答案:

没有答案