数据窗口中的DBERROR()事件中调用函数捕获错误
函数代码如下://函数名: F_Dw_DbError
//调用: F_Dw_DbError (SqlDbCode, THIS, Row, al_sqlerrtext)
//参数: SqlDbCode, THIS, Row 分别为DW的DbError事件的原有参数
//返回: 捕捉到错误: 1, 没有捕捉到错误: 0
//用于: MS SQL
string ls_message
long ll_return
CHOOSE CASE al_sqldbcode
CASE 2627
MessageBox( "确认 ", "第 " + STRING (al_row) + " 行输入重复, 请重新录入 ", Exc本人tion!)
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
adw_dw.SetFocus ()
adw_dw.scrolltorow(al_row)
adw_dw.SetRow (al_row)
return 1
CASE 10005
Messagebox( "确认 ", "数据库连接失败 ", Exc本人tion!)
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
return 1
CASE 515
Messagebox( "确认 ", "第 " + STRING (al_row) + " 行数据没有输入或输入的数据和数据库不匹配 ", Exc本人tion!)
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
adw_dw.SetFocus ()
adw_dw.scrolltorow(al_row)
adw_dw.SetRow (al_row)
return 1
CASE 10025
Messagebox( "确认 ", "网络故障, 请与数据库管理员联系 ", Exc本人tion!)
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
return 1
CASE 547
Messagebox( "确认 ", "此表中的数据已被使用, 不能删除 ", Exc本人tion!)
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
Return 1
case 513
MessageBox( "确认Rules ", "数量不足, 请不要修改当前的记录 ")
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
adw_dw.SetFocus ()
adw_dw.scrolltorow(al_row)
adw_dw.SetRow (al_row)
return 1
case 50000
Messagebox( "确认Trigger ", "此表中的数据已被使用, 不能删除 ", Exc本人tion!)
// MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
return 1
case else
MessageBox( "确认 ", "错误编号 " + string(al_sqldbcode) + " " + "错误内容 " + al_SQLErrText)
Return 1
END CHOOSE
Return 0 因为 dberror 是数据库的错误码,所以要知道是用什么 dbms 才有意义。
页:
[1]