以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  异常错误捕捉  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67264)

--  作者:newsun2k
--  发布时间:2015/4/21 14:27:00
--  异常错误捕捉
try
    cmd.C
    cmd.CommandText = strSQL
    Count = cmd.ExecuteNonQuery()
    dr("状态") = "完成"
    dr("时间") = Date.Now
    dr.Save
catch ex As Exception
    dr("状态") = "异常" 
    dr("时间") = Date.Now
    dr.Save
End try

其中,当strSQL不正确时,弹出错误窗口,并未和我设想的一样,在表里写一个“异常”,何解?

--  作者:狐狸爸爸
--  发布时间:2015/4/21 14:31:00
--  
很多错误,foxtable自己捕获了,看看这个:

http://www.foxtable.com/help/topics/2655.htm


--  作者:newsun2k
--  发布时间:2015/4/21 14:36:00
--  
求教:
我进行数据同步,上百个sql语句,我不想自己复制执行。
所以写在表中[sql表],弹出一个窗口,一条一条地读,然后执行。
这其中就有的因为各种原因,导致sql语句本身不正确,如何在表中标识错误的sql语句?

--  作者:Bin
--  发布时间:2015/4/21 14:37:00
--  
看2楼的错误,在错误事件捕获
--  作者:newsun2k
--  发布时间:2015/4/21 14:39:00
--  
Event:   字符型,返回发生错误的事件名称
Message1: 字符型,返回简明错误信息
Message2: 字符型,返回详细错误信息
Cancel:  逻辑型,设为True将禁止系统显示错误信息。
ex:       System.Exception类型,返回发生的错误,一般用户不需要使用此参数。

我的问题是,这里面怎么知道是我的哪个语句出问题了?

For Each dr As DataRow In drs
    strSQL = dr("SQL")
    If dr.Isnull("内容") Then
    Else
        e.Form.Controls("Label1").text ="正在执行:" & dr("内容")
    End If
    Dim cmd As New SQLCommand
    Dim Count As Integer
try
    cmd.C
    cmd.CommandText = strSQL
    Count = cmd.ExecuteNonQuery()
    dr("状态") = "完成"
    dr("时间") = Date.Now
    dr.Save
catch ex As Exception
    dr("状态") = "异常" 
    dr("时间") = Date.Now
    dr.Save
End try

Next

--  作者:Bin
--  发布时间:2015/4/21 14:42:00
--  
根据 Event 和 Message1 Message2 来判断.

你可以利用一个全局变量.每次循环把DR存进去

这报错的时候到错误事件获取,就是报错的DR了