在下面的代碼中,pathToNonDatabase
是簡單文本文件的路徑,而不是真正的sqlite數據庫。我希望sqlite3_open
檢測到,但它不(db
不是NULL
和result
是SQLITE_OK
)。那麼,如何檢測文件不是有效的sqlite數據庫?如何判斷sqlite數據庫文件是否有效
sqlite3 *db = NULL;
int result = sqlite3_open(pathToNonDatabase, &db);
if((NULL==db) || (result!=SQLITE_OK)) {
// invalid database
}
「pragma schema_version;」有時會拋出「數據庫被鎖定」錯誤。我會給「快速檢查」;試試 – 2014-03-13 02:13:30
如果你的數據庫被鎖定,它就被鎖定了。一切都會失敗。未鎖定時再試一次。 :) – 2014-03-13 02:25:56
你說得對。數據庫被鎖定時一切都會失敗。即使選擇。在我的情況下,我想確定該文件是否是Sqlite3數據庫。如果我得到「數據庫已鎖定」錯誤,我認爲假定文件是Sqlite3數據庫是安全的。 – 2014-03-13 02:38:23