我的oracle存储过程有4个输入参数:年/起始月/结束月/编号,该存储过程执行后,往一个临时表里插入数据。在oracle环境下测试了很多天了,运行都很正常。在delphi的form里放置三个下拉框和一个文本框,分别用于输入年/起始月/结束月/编号。
放一个Tadoconnection,其Connectionstring设置后与oracle连接正常。
放一个TAdoStoreproc,其connection设置为adoconnection的name,从ProcedureName下拉框里选择一个经过调试的存储过程,点击Parameters旁边的...可以看见存储过程的四个参数。可是在delphi程序的button事件过程执行下面代码时,
......
ND:=COMBOBOX1.TEXT;
QS:=COMBOBOX2.TEXT;
JS:=COMBOBOX3.TEXT;
BH:=EDIT1.TEXT;
with proc_name do
begin
Close;
Parameters.Clear;
Parameters.Refresh;
ProcedureName:='MY_ORA_PROC'; Parameters.CreateParameter('NIAN', ftstring,pdInput, 4,ND);
Parameters.CreateParameter('QISHIYUE', ftstring, pdInput,2,QS);
Parameters.CreateParameter('JIESHUYUE', ftstring, pdInput,2,JS);
Parameters.CreateParameter('BIAOHAO',ftstring, pdInput,4,BH); parameters.ParamValues['NIAN']:=ND;
parameters.ParamValues['QISHIYUE']:=QS;
parameters.ParamValues['JIESHUYUE']:=JS;
parameters.ParamValues['BIANHAO']:=BH;
Prepared := True;
ExecProc;
end
......
当执行到ExecProc;时,提示下面错误:
[Microsoft][ODBC driver for Oracle][Oracle]ORA-06550:行1、列7:
PLS-00306:调用'MY_ORA_PROC'时自变量数量或类型错误
ORA-06550:行1、列7:
PL/SQL:Statement ignored.另外,我在delphi的属性框里试图将存储过程的active设置为true时,也提示书面错误.请问是什么原因?怎么解决?
放一个Tadoconnection,其Connectionstring设置后与oracle连接正常。
放一个TAdoStoreproc,其connection设置为adoconnection的name,从ProcedureName下拉框里选择一个经过调试的存储过程,点击Parameters旁边的...可以看见存储过程的四个参数。可是在delphi程序的button事件过程执行下面代码时,
......
ND:=COMBOBOX1.TEXT;
QS:=COMBOBOX2.TEXT;
JS:=COMBOBOX3.TEXT;
BH:=EDIT1.TEXT;
with proc_name do
begin
Close;
Parameters.Clear;
Parameters.Refresh;
ProcedureName:='MY_ORA_PROC'; Parameters.CreateParameter('NIAN', ftstring,pdInput, 4,ND);
Parameters.CreateParameter('QISHIYUE', ftstring, pdInput,2,QS);
Parameters.CreateParameter('JIESHUYUE', ftstring, pdInput,2,JS);
Parameters.CreateParameter('BIAOHAO',ftstring, pdInput,4,BH); parameters.ParamValues['NIAN']:=ND;
parameters.ParamValues['QISHIYUE']:=QS;
parameters.ParamValues['JIESHUYUE']:=JS;
parameters.ParamValues['BIANHAO']:=BH;
Prepared := True;
ExecProc;
end
......
当执行到ExecProc;时,提示下面错误:
[Microsoft][ODBC driver for Oracle][Oracle]ORA-06550:行1、列7:
PLS-00306:调用'MY_ORA_PROC'时自变量数量或类型错误
ORA-06550:行1、列7:
PL/SQL:Statement ignored.另外,我在delphi的属性框里试图将存储过程的active设置为true时,也提示书面错误.请问是什么原因?怎么解决?
解决方案 »
- 鼠标放在某一行上如何判断这条记录的ID
- 关于StrPCopy的问题
- 想这样的数据库我应该如何操作?
- 请问aiirii(ari-爱的眼睛):还是nmftp问题
- 请问我要创建文件、夹删除文件夹、把文件夹改名,用Delphi怎么现实。我找的方法只在win3.1中有用,但我想要在win32中能用的函数
- Delphi中如何调用EXCEL文件的单元格内容
- ■■■Delphi中过程或函数可以嵌套定义吗?■■■
- 如何安装多个系统?
- 怎样判断image中是否有图片?
- 求众位帮忙,等着用!
- 用过TypInfo 单元中的 GetPropInfo 函数的进来帮忙一下,谢谢!~
- 定下varchar 16位,不足位时在右边用空格补上这样可以使导出的txt定位,如下:,
oracle存储过程的4个参数军事varchar2型的,而在delphi里,通过三个下拉框和一个文本框得到的如下变量,
ND:=COMBOBOX1.TEXT;
QS:=COMBOBOX2.TEXT;
JS:=COMBOBOX3.TEXT;
BH:=EDIT1.TEXT;
他们传到oracle的存储过程,会不会是数据类型部队,怎么修改?请帮帮忙
oracle存储过程的4个参数全是varchar2型的,而在delphi里,通过三个下拉框和一个文本框得到的如下变量,
ND:=COMBOBOX1.TEXT;
QS:=COMBOBOX2.TEXT;
JS:=COMBOBOX3.TEXT;
BH:=EDIT1.TEXT;
他们传到oracle的存储过程,会不会是数据类型不对,怎么修改?请帮帮忙