ado向oracle存储数据时的怪问题

wqb 2002-11-13 03:45:09
程序如下:
com+组件中
On Error GoTo ErrShow
mstrConnectString = "连接字符串"
Rs.MoveFirst

Dim cn As ADODB.Connection, strSQL As String, i As Long
Set cn = CreateObject("ADODB.Connection")
cn.Open mstrConnectString
While Not Rs.EOF
strSQL = "INSERT INTO bjds.InvoiceDetail (ID,INVOICEID,DATEUISSUED,AMOUNTCHARGED,RECEIVERNO,INVOICESTATE,FORGERYCODE) " _
' & "VALUES (0,'" & Rs!InvoiceID & "',To_Date('" & Format(Rs!DATEUISSUED, "YYYYMMDD") & "','YYYYMMDD')," & Rs!AMOUNTCHARGED & ",'" & Rs!ReceiverNo _
' & "'," & Rs!INVOICESTATE & ",'" & Rs!FORGERYCODE & "')"

cn.Execute strSQL
Rs.MoveNext
Wend
Debug.Print Now
cn.Close

'原来使用的,速度有些慢!!
' With Rs
' .ActiveConnection = mstrConnectString '& "YY"
' .UpdateBatch
' End With
If mblnInMTS Then mobjCTX.SetComplete
Exit Sub
后台数据库使用 oracle ,按照微软Using Oracle with Microsoft Transaction Server and COM+进行的配置
程序原来运行正常。后来不知道为什么就产生问题,执行大致5000条记录左右就会出现错误:-2147467259 Oracle产生不明异常错误,但无法捕捉错误信息

而把以上程序复制到 桌面程序中则毫无问题。
期间在编程机器上安装了.net,别的没有更改
请各位高手提供意见建议,谢谢
...全文
49 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlfd1999 2002-12-13
  • 打赏
  • 举报
回复
向大家学习
wqb 2002-12-10
  • 打赏
  • 举报
回复
抱歉,我最近才回来。sys_wkq(吴克青),我是在com+中调用的,如果这样,会出现这个错误:-2147168237无法在此会话中启动更多的事务。
sys_wkq 2002-11-25
  • 打赏
  • 举报
回复
On Error GoTo ErrShow
mstrConnectString = "连接字符串"
Rs.MoveFirst

Dim cn As ADODB.Connection, strSQL As String, i As Long
Set cn = CreateObject("ADODB.Connection")
cn.Open mstrConnectString
While Not Rs.EOF
strSQL = "INSERT INTO bjds.InvoiceDetail (ID,INVOICEID,DATEUISSUED,AMOUNTCHARGED,RECEIVERNO,INVOICESTATE,FORGERYCODE) " _
' & "VALUES (0,'" & Rs!InvoiceID & "',To_Date('" & Format(Rs!DATEUISSUED, "YYYYMMDD") & "','YYYYMMDD')," & Rs!AMOUNTCHARGED & ",'" & Rs!ReceiverNo _
' & "'," & Rs!INVOICESTATE & ",'" & Rs!FORGERYCODE & "')"

cn.Execute strSQL
Rs.MoveNext
Wend
Debug.Print Now
cn.Close

'原来使用的,速度有些慢!!
' With Rs
' .ActiveConnection = mstrConnectString '& "YY"
' .UpdateBatch
' End With
If mblnInMTS Then mobjCTX.SetComplete
Exit Sub
-----------------------------------------------------------------
修改如下:
on error goto errhandle:
with cn
begintrans
execute (strsql)
committrans
end with
exit sub
errhandle:
cn.rollbacktrans
end sub
wqb 2002-11-25
  • 打赏
  • 举报
回复
我修改过连接时间的设置,设为1秒与设为15秒的效果差别不大,而改为无限制也没用
cacoda 2002-11-15
  • 打赏
  • 举报
回复
是不是timeout啊
wqb 2002-11-13
  • 打赏
  • 举报
回复
不是,执行cn.Execute strSQL插入记录时出错.另外oracle也没有问题
wqb 2002-11-13
  • 打赏
  • 举报
回复
cn.Execute strSQL
要保存的数据都没有问题。目前看来与时间有关系。单步调试时可保存的条数少,执行时保存的多,但都在6000条以下

1,217

社区成员

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

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