问一段VB代码,总是报告:"多步OLE DB操作产生错误.如果可能,请检查每个OLE DB的状态值,没有工作被完成"

CableFan 2006-05-12 08:44:39
这是一段VB执行ORACLE FUNCTION的代码,执行之后通过异常捕捉到的错误:"多步OLE DB操作产生错误.如果可能,请检查每个OLE DB的状态值,没有工作被完成",请大家告诉一下是什么愿意啊.急呀

代码如下:

PONO = "H63091602"
InDate = 20060512
Qty = 12500
Location = "AA12"
BillNo = "DD01"
User = "panepan"
Computer = "itkpanhaiping"
'函数调用
Dim ErrMsg As String, RTN As Integer
Dim CsmoreRs As New ADODB.Recordset
Dim Cmd As New ADODB.Command
With Cmd
.ActiveConnection = CsmoreConn
.CommandType = adCmdText

.CommandText = "{CALL SOLID_SINPUT(?)}"
.Parameters.Append .CreateParameter("SP_SSJNO", adVarChar, adParamInput, 15, PONO) '采购NO
.Parameters.Append .CreateParameter("SP_UKEBI", adInteger, adParamInput, 8, InDate) '收货日
.Parameters.Append .CreateParameter("SP_UKEJSU", adInteger, adParamInput, 8, Qty) '收货数量
.Parameters.Append .CreateParameter("SP_ZIKLOC", adVarChar, adParamInput, 5, Location) '库位
.Parameters.Append .CreateParameter("SP_NOHSNO", adVarChar, adParamInput, 15, BillNo) '交货单NO
.Parameters.Append .CreateParameter("SP_CRTUSR", adVarChar, adParamInput, 20, User) '用户名
.Parameters.Append .CreateParameter("SP_CRTTERM", adVarChar, adParamInput, 20, Computer) '电脑名
.Parameters.Append .CreateParameter("SP_PROCMES", adVarChar, adParamOutput, 200, ErrMsg) '错误信息
.Parameters.Append .CreateParameter("RTN", adNumeric, adParamReturnValue, 8, RTN) '返回值
End With
Set CsmoreRs = Cmd.Execute
' MsgBox "RTN=" & RTN & " ErrMsg=" & ErrMsg
If RTN = 0 Then
MsgBox "成功!"
Else
MsgBox ErrMsg
End If
Set CsmoreRs = Nothing
Set Cmd = Nothing
...全文
1113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
panepan2005 2006-05-12
  • 打赏
  • 举报
回复
Oracle下执行没有问题的。单步调试是Set CsmoreRs = Cmd.Execute这一句错误啊
lzheng2001 2006-05-12
  • 打赏
  • 举报
回复
先不要在vb中执行这个函数,你直接在orcale上执行,看有没有错误! 如果有证明是ORACLE FUNCTION 本身的问题
yuvotesyg518 2006-05-12
  • 打赏
  • 举报
回复
你难道不会单步调试一下,看问题出在哪一句话吗?
panepan2005 2006-05-12
  • 打赏
  • 举报
回复
回复Leftie
数据库不存在两条相同记录的.存在相同记录时,在过程中也有判断的.

回复lzheng2001
你说到的问题我确认过了,没有超过长度的。
在网上看到的该异常也大部分和你说的一样,特意确认过此问题的
lzheng2001 2006-05-12
  • 打赏
  • 举报
回复
引起这个问题的原因简单的说就是数据库的字段类型不匹配或者字符个数超出了数据库的字段的最大限制个数。
例如自动编号字段的就不应该指定值;限制50个字符的字段你就不应该提交多于50个字符的字符串。
饮水需思源 2006-05-12
  • 打赏
  • 举报
回复
是不是数据库中存在完全相同的两条记录了?
lzheng2001 2006-05-12
  • 打赏
  • 举报
回复
能否把function的内容贴出来?
panepan2005 2006-05-12
  • 打赏
  • 举报
回复
在线等啊,各位大哥帮帮忙

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧