スクリプト開発 / コネクターオブジェクト 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 を参照してください。