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