pb dw.update()時出現主鍵重複時如何屏蔽datawindow error對話框及截獲出錯信息

一行簡單的代碼

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對話框。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章