指令碼開發 / 聯結器物件 DFF.CONN / Microsoft SQL Server
Microsoft SQL Server 聯結器操作物件主要提供 Microsoft SQL Server 的操作方法。
DFF.CONN(...) 引數如下:
| 引數 | 型別 | 必須 / 預設值 | 說明 |
|---|---|---|---|
connector_id |
str | 必須 | 聯結器 ID |
database |
str | None |
指定資料庫 |
.query(...)
執行 SQL 語句並返回 list[dict] 格式的查詢結果,引數如下:
| 引數 | 型別 | 必須 / 預設值 | 說明 |
|---|---|---|---|
sql |
str | 必須 | SQL 語句,可包含引數佔位符。? 表示需要轉義的引數;?? 表示不需要轉義的引數 |
sql_params |
list | None |
SQL 引數 |
| 示例 | |
|---|---|
1 2 3 | |
.non_query(...)
執行寫入、更新或刪除等 SQL 語句。引數與 .query(...) 相同。
| 示例 | |
|---|---|
1 2 3 | |
當前實現直接返回 pymssql.Cursor.execute(...) 的返回值,通常為 None,不能用它獲取影響行數。
.query(...) 和 .non_query(...) 執行成功後都會自動提交事務;執行失敗時自動回滾並丟擲異常。
事務
需要在同一事務中執行多條 SQL 時,使用以下方法:
| 方法 | 說明 |
|---|---|
.start_trans() |
開始事務並返回事務連線物件 |
.trans_query(trans_conn, sql, sql_params=None) |
在事務中執行查詢並返回 list[dict] |
.trans_non_query(trans_conn, sql, sql_params=None) |
在事務中執行非查詢 SQL,通常返回 None |
.commit(trans_conn) |
提交事務並關閉事務連線 |
.rollback(trans_conn) |
回滾事務並關閉事務連線 |
事務執行過程中出現異常時,應呼叫 .rollback(trans_conn);同一個事務連線物件完成提交或回滾後不可繼續使用。
動態 SQL 語句
query(...) 和 non_query(...) 內部使用 DFF.SQL(...) 構造 SQL 語句並支援構造複雜動態的 SQL 語句。
如 WHERE IN (...) 不確定數量的值,或者 INSERT INTO ... VALUES ... 進行批次寫入資料等。
詳情請參考 指令碼開發 / SQL 構造 DFF.SQL