Python 3 : SQLite3的存取基本步驟,及異常錯誤處理 (try ... except ... )
- 參考資料:
- 在Python 3 環境下,使用SQLilte3,對資料庫操作的基本步驟(一般原則):
- 用sqlite3.connect("資料庫檔名.副檔名") 建立資料庫連線,並將這個連線物件指定給一個連線物件變數,例如:oConn=sqlite3.connect("資料庫檔名.副檔名")
- 建立連線物件的cursor物件,例如:cTest=oConn.cursor()
- 執行SQL命令,將結果以tuple資料組存放在cursor物件內。例如:cTest.execute("SQL命令")
- 取得目標資料集,例如:oTest=cTest.fetchall()
- 處理取得的資料集,例如:for aTest in oTest :
- 關閉資料庫連線,例如:oConn.close()
- 對於不需要return回傳執行結果的資料庫操作,可以簡化操作步驟,如下:
- 建立資料庫連線,例如:oConn=sqlite3.connect("資料庫檔名.副檔名")
- 執行SQL命令,例如:oConn.execute("SQL命令")
- 更新資料庫,例如:oConn.commite()
- cursor物件是一個指標物件,cursor物件執行SQL命令後,會將結果存放在cursor物件內,並可透過fetchone, fetchmany, fetchall ... 等方法或函數來操作cursor物件內的資料。
一個資料庫連線的使用過程,可以根據目的需求的不同,建立多個cursor物件來使用,不同名稱的cursor物件,如果不再使用可給予關閉close()。同一個cursor物件,可以透過不同的命令執行,賦予不同的資料內容。
使用VS code 可以快速瀏覽sqlite3 cursor可以使用的方法、屬性...
- 可以使用 VS Code,查看Python 有哪些處理 SQLite 錯誤例外異常的類別,例如;Error, DatabaseErrot, DataError, ProgrammingError ...,在不分開測試錯誤類別來源的情況下,可以使用預設的異常錯誤例外處理 Exception ...
import sqlite3
oConn=sqlite3.connect("test.db")
zSQL="UPDATE T SET T2='5',T3='8' WHERE T1='1' "
try:
oConn.execute(zSQL)
except sqlite3.DataError as d:
print("d=",d)
except sqlite3.DatabaseError as de:
print("de=",de)
except sqlite3.Error as e:
print("e=",e)
except Exception as ex:
print("ex=",ex)
oConn.commit()
#de= database is locked
- 適度地在SQLite的CRUD操作上使用try ... except ...,可以確保程式持續執行,或在執行過程排除異常、錯誤...。
沒有留言:
張貼留言