使用sql server2000 。在vb里如何能获得视图触发器中raiserror 抛出的出错信息? 在vc中试验已经能够实现,问 在vb中如何得到?
解决方案 »
- vb 变量声明Public Property Get 和Public Property let的 区别
- MSCOMM属性问题
- 我想打开服务器上的word文档,服务器有用户密码,文件夹也开了共享,如何打开word
- 菜籽跪问 VB中如何将时间作为输出数据文件的文件名
- vb下有没有象网页上的框架一样的控件!!
- 如何像windows那样拷贝文件(带进度条和拷贝动画的那个)?
- 窗体为何没执行代码,或者代码失效?
- 查询,急!!!!
- 关于VBscript编的病毒问题,急需解决!
- 请问:datareport使用产生“多步操作产生错误..”问题。谢谢大家了,我好急!
- 在VB中用API函数写一个完整的串口通讯函数,请求源码!
- 初学者问题:怎样才能在"计算结果"一栏中显示"55-49=6"?(见内容)
cmUpdateBatch.CommandText = " SET ANSI_NULLS OFF SET NOCOUNT ON " & strVariant & Chr(10) & strSetOriginalValue & Chr(10) & strConflictSql & Chr(10) & " BEGIN " & strDeleteSql & " END " & Chr(10)
go--测试表
create table tb(a int)
go--测试视图
create view v_a
as
select * from tb
go--测试触发器
create trigger tr_test on v_a
instead of insert
as
if exists(select 1 from inserted where a>50)
raiserror('输入的数字不能大于50,插入失败',16,1)
go
'测试 ADODB.Connection 的 Execute 方法
Sub test1()
Dim conn$
Dim db As ADODB.Connection
'数据库连接字符串
conn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tempdb"
'错误跳转的处理
On Error GoTo lb_Err
'测试 ADODB.Connection 的 Execute 方法
Set db = New ADODB.Connection
db.Open conn
db.Execute ("insert v_a values(500)")
db.Close
Set db = Nothing
'退出存储过程
Exit Sub
lb_Err:
MsgBox "错误:" & Error()
'如果对象没有关闭,则关闭对象
If Not (db Is Nothing) Then
If db.State <> 0 Then db.Close
Set db = Nothing
End If
End Sub
'测试 ADODB.Recordset 对象的
Sub test2()
Dim conn$
Dim re As ADODB.Recordset
'数据库连接字符串
conn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tempdb"
'错误跳转的处理
On Error GoTo lb_Err
'测试 ADODB.Recordset 对象的
Set re = New ADODB.Recordset
re.Open "v_a", conn, adOpenKeyset, adLockOptimistic
re.AddNew
re(0) = 500
re.Close
Set re = Nothing
'退出存储过程
Exit Sub
lb_Err:
MsgBox "错误:" & Error()
'如果对象没有关闭,则关闭对象
If Not (re Is Nothing) Then
If re.State <> 0 Then
If re.EditMode <> adEditNone Then re.CancelUpdate
re.Close
End If
Set re = Nothing
End If
End Sub
'测试 ADODB.Recordset 对象的
Sub test2()
Dim conn$
Dim re As ADODB.Recordset
'数据库连接字符串
conn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tempdb"
'错误跳转的处理
On Error GoTo lb_Err
'测试 ADODB.Recordset 对象的
Set re = New ADODB.Recordset
re.Open "v_a", conn, adOpenKeyset, adLockOptimistic
re.AddNew
re(0) = 500
re.Update
re.Close
Set re = Nothing
'退出存储过程
Exit Sub
lb_Err:
MsgBox "错误:" & Error()
'如果对象没有关闭,则关闭对象
If Not (re Is Nothing) Then
If re.State <> 0 Then
If re.EditMode <> adEditNone Then re.CancelUpdate
re.Close
End If
Set re = Nothing
End If
End Sub
create trigger tr_test_tb on tb
for insert
as
if exists(select 1 from inserted where a<0)
raiserror('输入的数字不能小于0,插入失败',16,1)
go
sub/function(....)
on error goto errHandle '(你要進行處理錯誤的地方的標號)
.............
errHandle:
error處理(如:msgbox err.description)
end sub/function