调用“过程名”时参数个数或类型错误 第1行 第7列

问题描述

客户端代码:try{i=WebSvr.svr.CHECK05DOCPLU(docno,textBox1.Text.Trim(),outqty,outerrmsg);}catch(ExceptionE1){Program.MsgDlgOK(E1.Message);return;}客户端存根注册:publicintCHECK05DOCPLU(stringp_docno,stringp_bcd,outintp_qty,outstringerrmsg){object[]results=this.Invoke("CHECK05DOCPLU",newobject[]{p_docno,p_bcd});p_qty=((int)(results[1]));errmsg=((string)(results[2]));return((int)(results[0]));WEBSERVER端:publicintCHECK05DOCPLU(stringp_docno,stringp_bcdno,outintqty,outstringerrmsg)//CREATEORREPLACEPROCEDURERF_CHECK05DOCPLU(P_DOCNOINVARCHAR2,P_BCDNOINVARCHAR2,P_QTYOUTINTEGER,P_RETURNOUTINTEGER)AS{inti=0;errmsg=string.Empty;qty=0;conn.Open();OracleCommandcmd=newOracleCommand("RF_CHECK05DOCPLU",conn);OracleTransactiontran=conn.BeginTransaction();try{cmd.CommandType=System.Data.CommandType.StoredProcedure;cmd.Parameters.Add("P_DOCNO",OracleType.VarChar,20);cmd.Parameters["P_DOCNO"].Value=p_docno;cmd.Parameters.Add("P_BCDNO",OracleType.VarChar,20);cmd.Parameters["P_BCDNO"].Value=p_bcdno;OracleParameterp_qty=cmd.Parameters.Add("P_QTY",OracleType.Int32);p_qty.Direction=System.Data.ParameterDirection.InputOutput;OracleParameterp_return=cmd.Parameters.Add("P_RETURN",OracleType.Int32);p_return.Direction=System.Data.ParameterDirection.InputOutput;cmd.Transaction=tran;cmd.ExecuteNonQuery();tran.Commit();qty=Convert.ToInt32(p_qty.Value);i=Convert.ToInt32(p_return.Value);}catch(ExceptionE1){tran.Rollback();errmsg=E1.Message;}finally{conn.Close();cmd.Dispose();tran.Dispose();}returni;}总是提示上面错误,,,小弟找不到原因,,确定参数类型和个数没问题:下面是相应的ORACAL服务器端过程:CREATEORREPLACEPROCEDURERF_CHECK05DOCPLU(P_DOCNOINVARCHAR2,P_BCDNOINVARCHAR2,P_QTYINOUTINTEGER,P_RETURNINOUTINTEGER)AS--参数说明:判断返配单中该商品是否存在、是否已验收完毕。若商品存在且未验收完毕,返回未验收箱数--P_DOCNO:反配单号--P_PLUNO:商品编码--P_QTY:未验收数量V_SELECTINTEGER;V_DOCNOVARCHAR2(20);V_CTYPINTEGER;V_REVIDINTEGER;V_PLUIDINTEGER;V_NQTYNUMERIC(9,3);BEGINV_DOCNO:=P_DOCNO;V_PLUID:=0;SELECTCOUNT(1)INTOV_SELECTFROMDOC05BFWHEREDOCNO=V_DOCNO;IFV_SELECT<=0THEN--RAISE_APPLICATION_ERROR(-20000,'在验证返配单'||V_DOCNO||']时出错,无法找到反配单.');P_RETURN:=-1;RETURN;ENDIF;SELECTCTYP,REVIDINTOV_CTYP,V_REVIDFROMDOC05BFWHEREDOCNO=V_DOCNO;SELECTPLUIDINTOV_PLUIDFROMvwbasbcdWHEREBCD=P_BCDNO;SELECTCOUNT(1)INTOV_SELECTFROMDOC05DTWHEREDOCNO=V_DOCNOANDPLUID=V_PLUID;IFV_SELECT<=0THEN--RAISE_APPLICATION_ERROR(-20000,'在验证商品['||P_BCDNO||']时出错,在单据['||V_DOCNO||']中无法找到此商品.');P_RETURN:=-2;RETURN;ENDIF;IFV_REVID>0THEN--RAISE_APPLICATION_ERROR(-20000,'单据['||V_DOCNO||']已验货完毕!.');P_RETURN:=-3;RETURN;ENDIF;SELECTQTY-NVL(NQTY,0)INTOV_NQTYFROMDOC05DTWHEREDOCNO=V_DOCNOANDPLUID=V_PLUID;IFV_NQTY<=0THEN--RAISE_APPLICATION_ERROR(-20000,'商品['||P_BCDNO||']已验货完毕!.');P_RETURN:=-4;RETURN;ELSEP_QTY:=V_NQTY;ENDIF;/*IFV_CTYP=1THENENDIF;*/COMMIT;P_RETURN:=1;ENDRF_CHECK05DOCPLU;请教。。。。

解决方案

解决方案二:
看着这么多代码好烦

时间: 2024-10-22 19:45:41

调用“过程名”时参数个数或类型错误 第1行 第7列的相关文章

oracle-Java调用存储过程一直出现:调用 &amp;amp;#39;TEST&amp;amp;#39; 时参数个数或类型错误

问题描述 Java调用存储过程一直出现:调用 'TEST' 时参数个数或类型错误 解决方案 看下你给进去的参数的数据类型 和 你定义过程的数据类型是否都一直 解决方案二: 你这明显是传入的参数个数和存储过程的参数不一样啊.你直接调试下存储过程,看让你输入几个参数

ndk jni c++ android-Android上利用JNI调用OpenCV函数时出现Fatal signal 11错误

问题描述 Android上利用JNI调用OpenCV函数时出现Fatal signal 11错误 我想在Android上用OpenCV实现人脸识别功能,即事先有一个我提供的人脸训练库,然后检测出人脸后,识别他和训练库中的哪类人最像. 我已在windows平台实现了该功能,并将训练好的FaceRecognizer通过save的方式存储成了xml.我将xml文件放入了Android手机某目录下,然后想利用JNI的方式在Android app中使用OpenCV载入该数据库,但运行到这一行就会报错: F

C#调用C++DLL时参数该如何对应

问题描述 如题,原来的程序是用C++编写的,加载了DLL调用如下(可知DLL中的函数名和参数)typedefint(*pGetSubEngineID)(char*modelName,int*sID,double*sModelStepSize);typedefint(*pGetBaseStepSize)(double*StepSize);typedefint(*pInitDataBus)();typedefint(*pReleaseDataBus)();typedefint(*pSimDataWr

调用C++DLL时遇到结构体类型难题

问题描述 C++DLL里的一个函数:HRESULTDSStream_EnumVideoCompressor(VideoCompressorInfo*pInfo,int*piVidCompNum)得到系统中安装的视频压缩算法的信息.pInfo:指向一片预先分配的VideoCompressorInfo结构.如果为NULL,piVidCompNum将得到系统中安装的视频压缩算法的数目.piVidCompNum:如果pInfo不为NULL,piVidCompNum表示pInfo中包含多少个VideoCo

C#调用DLL文件时参数对应表

Wtypes.h中的非托管类型 非托管 C语言类型 托管类名 说明 HANDLE void* System.IntPtr 32 位 BYTE unsigned char System.Byte 8 位 SHORT short System.Int16 16 位 WORD unsigned short System.UInt16 16 位 INT int System.Int32 32 位 UINT unsigned int System.UInt32 32 位 LONG long System.

在vb.net中调用过程

一.调用Sub过程 与Function过程不同,在表达式中,Sub过程不能用其名字调用,调用Sub过程的是一个独立的语句.Sub过程还有一点与函数不同,它不会用名字返回一个值.但是,与Function过程一样,Sub过程也可以修改传递给它们的任何变量的值.调用Sub过程有两种方法: '以下两个语句都调用了名为MyProc的Sub过程. Call MyProc(FirstArgument,SecondArgument) MyProc(FirstArgument,SecondArgument)二.调

java-代码中子类在调用重名方法时返回结果为null,究竟调用过程是怎样的?

问题描述 代码中子类在调用重名方法时返回结果为null,究竟调用过程是怎样的? class father { private String name; father(String name) { this.name=name; } public String get_name() { return this.name; } } class son extends father { private String name; son(String name) { super(name); } pub

SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

   我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked Server), 调用存储过程过程时,参数不能为NULL值. 否则就会报下面错误提示: 对应的英文错误提示为: EXEC xxx.xxx.dbo.Usp_Test NULL,NULL,'ALL' Msg 7213, Level 16, State 1, Line 1 The attempt by

winform-用C#listview控件Details类型,发现当拉动表头调整列宽度过程时,listview会

问题描述 用C#listview控件Details类型,发现当拉动表头调整列宽度过程时,listview会 用C#listview控件Details类型,发现当拉动表头调整列宽度过程时,listview会重画,造成不停的闪烁.有什么方法让它在宽度调整完后之后,listview才重画