4D v12.4SQL EXECUTE |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
SQL EXECUTE
|
SQL EXECUTE ( sqlStatement {; boundObj}{; boundObj2 ; ... ; boundObjN} ) | ||||||||
引数 | 型 | 説明 | ||||||
sqlStatement | テキスト |
![]() |
実行するSQLコマンド | |||||
boundObj | 変数, フィールド |
![]() |
結果を受け取る(必要に応じて) | |||||
SQL EXECUTEコマンドを使用してSQLコマンドを実行し、結果を4Dのオブジェクト(配列、変数またはフィールド) にバインドできます。
このコマンドを実行するためには、カレントプロセスで有効な接続が指定されていなければなりません。
sqlStatement引数には実行するSQLコマンドが含まれています。boundObjはその結果を受け取ります。変数は列の順番でバインドされ、残っているリモートカラムは放棄されます。
boundObjに4Dのフィールドが渡された場合、コマンドはレコードを作成し自動的に保存します。4Dのフィールドは同じテーブルに属していなければなりません (テーブル1のフィールドとテーブル2のフィールドを同じ呼び出しで渡すことはできません)。複数のテーブルのフィールドが渡された場合、エラーが発生します。
boundObj引数に4Dの配列を渡す場合、コマンドを呼び出す前に、その配列を宣言することをお勧めします。これは処理されるデータのタイプを検証するためです。必要に応じて配列は自動でサイズ変更されます。
4D変数の場合、1度に1つのレコードが取得されます。他の結果は無視されます。
注: SQLクエリで4D式を参照することについての詳細は、SQLコマンドの概要を参照してください。
以下の例で、データソースにあるempテーブルのenameカラムを取得します。その結果は、4Dのフィールドの[Employee]Nameに保存されます。4Dのレコードは自動的に作成されます。
SQLStmt:="SELECT ename FROM emp"
SQL EXECUTE(SQLStmt;[Employee]Name)
SQL LOAD RECORD(SQL All Records)
レコードの作成を確認するには、トランザクションにコードを投入します。そしてオペレーションが十分であると判明した場合のみ、それを認証します。
SQL LOGIN("mysql";"root";"")
SQLStmt:="SELECT alpha_field FROM app_testTable"
START TRANSACTION
SQL EXECUTE(SQLStmt;[Table2]Field1)
While(Not(SQL End selection))
SQL LOAD RECORD
... `ここにデータを検証するコードを設定します。
End while
VALIDATE TRANSACTION `トランザクションの検証
以下の例では、データソースにあるempテーブルのenameカラムを取得します。その結果は、aName 配列に保存されます。1度に10個のレコードを取って来ます。
ARRAY TEXT(aName;20)
SQLStmt:="SELECT ename FROM emp"
SQL EXECUTE(SQLStmt;aName)
While(Not(SQL End selection))
SQL LOAD RECORD(10)
End while
以下の例では、データソースの特定のID(WHERE節) のためのempテーブルのenameとジョブを取得します。その結果は、4Dの変数、vNameとvJobに保存されます。最初のレコードだけを取って来ます。
SQLStmt:="SELECT ename, job FROM emp WHERE id = 3"
SQL EXECUTE(SQLStmt;vName;vJob)
SQL LOAD RECORD
以下の例では、データソースにあるTestテーブルのBlob_Fieldカラムを取得します。その結果は、BLOB変数に保存されます。そして、レコードがロードされる度に、そのBLOB変数の値を更新します。
C_BLOB(MyBlob)
SQL LOGIN
SQL EXECUTE("SELECT Champ_Blob FROM Test";MonBlob)
While(Not(SQL End selection))
`結果を調査します。
SQL LOAD RECORD
`呼び出す度にMyBlobの値を更新します。
End while
コマンドが正しく実行されると、OKシステム変数は1に、そうでなければ0に設定されます。
プロダクト: 4D
テーマ: SQL
番号:
820
初出: 4D 2004