一行簡單的代碼
if dw_2.update() = -1 then
//ls_err= SQLCA.SQLErrText
rollback using sqlca;
if sqldb = 2627 then
messagebox("","主鍵重複,保存失敗!" + sqlerr)
else
messagebox("", "保存失敗,錯誤碼:"+ string(sqldb) )
end if
return
else
commit using sqlca;
messagebox("", "保存成功!")
return
end if
前臺界面如下:
當前臺輸入了兩條卡號(主鍵)相同的信息並保存時, 會出現主鍵重複的錯誤。如圖:
但是這個datawindows error非常討厭,會令用戶非常迷茫,想去掉這個系統默認的提示窗口,方法如下:
在dw_2的dberror的事件中添加return 1語句,並接收sqldbcode來截獲數據庫出錯代碼,如圖:
奇怪的是這裏面不能用sqlerrtext來接收數據庫出錯信息,因爲只要加上這行代碼就會出現如下對話框。
因此只能用sqldbcode來判斷出錯原因。當主鍵重複時出錯代碼是:2627,因此上面代碼執行後得到想要的結果如圖:
注意:在dberror事件下寫代碼return 1後只有正常運行時能夠實現預期效果。如果進行調試debug的話,這行代碼是不生效的,依然會出現datawindow error對話框。