我正在使用sqlite項目。在我的項目中,我正在插入,獲取和更新數據到datbase.But有時我是數據庫的geeting錯誤被鎖定,並且沒有這樣的表:tablename。我檢查了我的代碼sqlite3_open,sqlite3_prepare_v2,sqlite3_step,sqlite3_finalize和sqlite3_close。但我得到Problem.Can任何人都可以幫助我數據庫已鎖定錯誤sqlite Ios
2
A
回答
2
當您嘗試從同一數據庫連接同時與數據庫執行兩個不兼容的事情時,會出現此錯誤代碼。例如,如果您處於SELECT語句的中間,並且您嘗試刪除SELECT所讀取的其中一個表,您將收到SQLITE_LOCKED錯誤。下面是(使用的Tcl)的示例:
db eval {SELECT rowid FROM ex1} {
if {$rowid==10} {
db eval {DROP TABLE ex1} ;# will give SQLITE_LOCKED error
}
}
注意,一個SQLITE_LOCKED錯誤是從SQLITE_BUSY不同(5)。 SQLITE_BUSY意味着另一個數據庫連接(可能在另一個進程中)以阻止您使用數據庫的方式使用數據庫。 SQLITE_LOCKED意味着爭用的來源是內部的,並且來自收到SQLITE_LOCKED錯誤的同一數據庫連接。
這裏有其他原因得到一個SQLITE_LOCKED錯誤:
試圖創建或刪除表或索引,而SELECT語句是 仍懸而未決。
有時人們認爲他們已經使用SELECT語句 因爲sqlite3_step()返回SQLITE_DONE完成。但是,在sqlite3_reset()或sqlite3_finalize()調用 之前,SELECT是 並不真正完成。
從簽入[3902](2007-05-02 V3.3.17之後)開始,現在允許使用CREATE語句 。
試圖寫入一個表而SELECT是在該相同 表活性。
- 從簽入[3355](2006-08-16版本3.3.7之後)開始,現在允許使用 。
試圖做兩SELECT在同一個表在同一時間在
多線程應用程序,如果SQLite是沒有設置這樣做。的fcntl(3,在DB文件F_SETLK調用失敗,這可能是由
NFS鎖定問題引起的,例如,對於這個問題的一個解決方案,就是 MV的DB走,並把它複製回來,它有一個新的inode
值。
相關問題
- 1. Sqlite數據庫鎖定錯誤 - iOS
- 2. SQlite:數據庫被鎖定錯誤
- 3. 數據庫鎖定錯誤sqlite android
- 4. PDO Sqlite錯誤5:數據庫鎖定
- 5. SQLite數據庫鎖定錯誤
- 6. iOS'數據庫中的Sqlite被鎖定'錯誤
- 7. SQLITE「數據庫已鎖定」(Java-Eclipse)
- 8. 德爾福Xe5 firedac數據庫SQLite數據庫鎖定錯誤
- 9. 數據庫鎖定錯誤
- 10. SQLite數據庫被鎖定
- 11. Java - 鎖定SQLite數據庫
- 12. android sqlite數據庫已關閉錯誤
- 13. 多線程應用程序中的SQLite「數據庫已鎖定」錯誤
- 14. 在sqlite中鎖定SQLite數據庫admin
- 15. 分離SQLite數據庫時出錯 - 數據庫被鎖定
- 16. sqlite數據庫鎖
- 17. 使用WSGI python應用程序鎖定SQLite數據庫錯誤
- 18. 接受「數據庫被鎖定」錯誤使用SQLite和C#
- 19. SQLite數據庫鎖定錯誤使用C#應用程序
- 20. 在Android中處理sqlite'數據庫被鎖定'錯誤
- 21. 數據庫被鎖定在錯誤的sqlite
- 22. 儘管使用內容提供程序和順序數據庫訪問,android sqlite「數據庫已鎖定」錯誤
- 23. 從Trac獲取「數據庫已鎖定」錯誤消息
- 24. SQLITE:當使用更新查詢時,數據庫被鎖定錯誤(錯誤-5)
- 25. PDO SQLite無法更新記錄:「數據庫已被鎖定」
- 26. JDBC「數據庫表被鎖定」錯誤
- 27. 值java.sql.SQLException:數據庫被鎖定錯誤
- 28. SGE + sqlite3:錯誤:數據庫被鎖定
- 29. Sinch lib錯誤:數據庫被鎖定
- 30. 錯誤:數據庫被鎖定在sqlite3
你有problem.All參考的任何解決方案都歡迎。 – chakshu