VB+SQL SERVER使用ADO时的问题,高手们请进

DeD 2001-05-15 12:49:00
代码如下
public sub test()
Dim strSQL As String
Dim cn As ADODB.Connection
On Error GoTo HERROR
'打开连接
strSQL = "create table #Tmp" & vbCrLf _
& "(ItemID int not null ," & vbCrLf _
& "BegQty decimal(28,10) not null default(0))" & vbCrLf
strSQL = strSQL & "insert into #Tmp(ItemID,BegQty)" & vbCrLf
strSQL = strSQL & " select ItemID,BegQty from tableA" & vbCrLf
strSQL = strSQL & " select * from #Tmp" & vbCrLf
strSQL = strSQL & "drop table #Tmp" & vbCrLf
cn.Execute strSQL
'此处我就出现问题,当向临时表#Tmp 插入纪录时 BegQty 的值存在NULL我用SQL
'Query Analyzer执行可以出现错误但是此处我用错误陷阱不能捕获错误
'我的错误捕获设置为 Break IN Class Module
'当然我可以通过访问cn.Errors对象来查看有没有出错,希望知道
'ADO 的Connection 对象有没有一个属性设置可以捕获此类错误

cn.close
set cn=nothing
exit sub
HERROR:
set cn=nothing
end sub
...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
DeD 2001-05-15
  • 打赏
  • 举报
回复
liguangyi 的回答比较满意,等一等看有没有更加好的方法解决问题,一定加分
格利高里 2001-05-15
  • 打赏
  • 举报
回复
每个 Error 对象都表示一个特定的提供者错误,而不是 ADO 错误。ADO 错误被记载到运行时例外处理机制中。例如,在 Microsoft Visual Basic 中,发生 ADO 特有的错误将触发 onError 事件,并且出现在 Err 对象中。
而且这些sql语句,不能放到一起来执行。和SQL Query Analyzer执行不一样
如果是想进行多记录集处理,可以利用Recordset对象的NextRecordset方法获得每记录集


34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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