任意の SQL 文をユーザーが指定したタイミングで実行する Field。標準の CRUD(Insert / Update / Delete)では実現できない処理を、SQL 文や ストアドプロシージャ呼び出しで挟み込めます。
UI は持ちません。デザイナでの設定のみで動作します。
- 標準 Submit の前後で追加の DB 操作をしたい(例: ログ挿入、別テーブルの整合性更新)
- 標準 CRUD を抑止して独自 SQL に置き換えたい
- 特定ボタン(Standalone)で SQL を実行したい
- ストアドプロシージャを呼び出したい
| C#名 | 日本語表示名 | 説明 |
|---|---|---|
| - | フィールドタイプ | ExecuteSql 固定 |
| C#名 | 日本語表示名 | 型 | 既定値 | 説明 |
|---|---|---|---|---|
| Name | 名前 | string | "" |
フィールド識別子 |
| Timing | タイミング | enum | Standalone |
SQL が実行されるタイミング |
| WithStandardIO | 標準IOとの関係 | enum | None |
標準の CRUD 処理との組み合わせ方 |
| ExecuteSqlSetting | SQL設定 | ExecuteSqlSetting | - | SQL 本文・パラメータ・失敗判定などの詳細(「設定を開く」から編集) |
| IgnoreModification | 変更判定から除外 | bool | false |
変更検知から除外 |
| 値 | 実行タイミング |
|---|---|
| Create | 新規作成画面で Submit されたとき |
| Update | 編集画面で Submit されたとき |
| Delete | 一覧画面で削除ボタンが押されたとき |
| Standalone | 上記のどれでもない時。Submit ボタンが押された時に実行 |
Standalone の SQL を実行するには、そのモジュールの書き込みの条件を満たす必要があります(ListField の行モジュールで実行されるものは行モジュール側の条件)。
Create / Update / Delete は Submit の一部として実行されるので、元から書き込みの条件が必要です。
さらに細かく制御したい場合は、権限フィールドで ExecuteSqlField を対象にすると「その SQL を実行できるか」を SQL ごとに設定できます(書き込みできる条件で判定します。読み取りできない場合も実行できません)。 実行はデータを対象にしない操作のため、条件にはログインユーザーの値(CurrentUser)だけが使えます。
SQL 文の内容は Codeer.LowCode.Blazor からは判断できないため、データによる認可(行の条件)と項目単位の権限は SQL の内容には効きません。 行や項目で絞りたい場合は SQL の WHERE で絞ってください(ログインユーザーの値を持つフィールドをモジュールに置き、パラメータとして SQL に渡します)。
Standalone の ExecuteSqlField を持つモジュールにデータによる認可を設定していると、デザインチェックが知らせます。
権限フィールドの条件にデータ自身の値を使っている場合も同様です。
→ 認証・認可
Standalone 以外の時に有効。標準の CRUD 処理とカスタム SQL の実行順を指定します。
| 値 | 挙動 |
|---|---|
| None | 標準処理は実行されない。カスタム SQL のみ実行される |
| Before | 標準処理 → カスタム SQL の順で実行 |
| After | カスタム SQL → 標準処理の順で実行 |
プロパティパネルの「設定を開く」ボタンから詳細ダイアログを開きます。
| 値 | 用途 |
|---|---|
| Sql | 通常の SQL 文 |
| StoredProcedure | ストアドプロシージャ呼び出し |
実行方法。戻り値の扱いが変わります。
| 値 | 用途 | 戻り値 |
|---|---|---|
| NonQuery | INSERT / UPDATE / DELETE 等 | 影響行数 |
| Reader | SELECT(行を取得) | データセット |
| Scalar | 単一値を取る | 最初の行の最初の列 |
Command Type に応じた構文で記述します。
SQL 実行結果をどう「失敗」と判定するかを指定します(デザイナ上は試し実行結果で確認可能、Web では失敗時に例外発生)。
| 項目 | 値 | 説明 |
|---|---|---|
| 判定ターゲット | None / MethodReturnValue / Parameter |
何を見て判定するか |
| 判定用Parameter名 | string | 判定ターゲットが Parameter の場合 |
| 判定条件 | Equal / NotEqual |
比較方法 |
標準処理を抑止して自前で Insert する場合、追加された行の Id をどう得るかを指定します。
| 項目 | 値 | 説明 |
|---|---|---|
| NewId取得方法 | None / MethodReturnValue / Parameter |
何を Id として返すか |
| NewId取得用parameter名 | string | Parameter の場合 |
SQL 内で使うパラメータ(@name 等)の定義。
| 項目 | 説明 |
|---|---|
| パラメータ名 | SQL 内で参照する名前 |
| DbType | DB の型 |
| 方向タイプ | Input / Output / InputOutput / ReturnValue / MethodReturn(MethodReturn は実行結果を格納する内部用) |
| Sample Value | デザイナ上で試し実行するときのサンプル値 |
ダイアログの「実行」ボタンでデザイナから SQL を実行して結果を確認できます。
注意: 試し実行もデザイナが接続している本物の DB に対して行われます。DELETE / UPDATE の試し実行は実際にデータを書き換えるので取り扱い注意。
スクリプト公開メンバーはありません(全メンバー [ScriptHide])。実行タイミングと SQL はデザイナ設定で完結します。
- QueryField — 任意の SELECT 文の結果を画面に表示する
- クエリを AI で作成
- Field 共通プロパティ

