標題說明了一切,真的。我有一個 QT 應用程式,使用 QSqlDatabase 介面,我需要對違反唯一鍵約束的行為采取不同的操作,而不是任何其他型別的錯誤。
目前后端資料庫是 SQLite,如果這很重要的話。但是,管理層正在討論切換到 MS SQL Server,所以如果解決方案是特定于資料庫的,我將需要一個用于兩者。
uj5u.com熱心網友回復:
您可以使用一種QSqlQuery::lastError方法來檢查執行時發生的錯誤INSERT或UPDATE查詢。它回傳 QSqlError,它有一個nativeErrorCode方法。我不確定它是否只包含一個數值或完整的錯誤描述。
通常,根據檔案 SQLite 應該回傳2067錯誤,但是 SQL Server 有不同的錯誤代碼2601,并且2627這些是特定于表鍵約束的。
因此,您應該檢查字串值是否QSqlError::nativeErrorCode包含特定于資料庫引擎的錯誤代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/496969.html
