version 11
まずとてもシンプルなクエリから始めましょう: ビデオライブラリにいくつ映画が登録されているかを取得します。4Dランゲージでは以下のようにコードを書きます:
・SQLエンジンを使用して同様のことを行う最初の方法は、クエリ文を"Begin SQL"と"End SQL"タグの間に置くことです。この方法では以下のようになります:
御覧の通り、クエリの結果を変数にとることができます (今回の場合$AllMoviesに)。変数が"<<"と">>"で囲まれていることに注目してください。
有効な4D表現式 (変数、フィールド、配列、式など) を参照する別法は、表現式の前にコロン":"を置くことです:
インタープロセス変数の場合は少し異なる記法が必要なことに注意してください。インタープロセス変数は"["と"]"の間に記述しなければなりません:
・SQLエンジンを使用する二つ目の方法は統合された汎用SQL (ODBC互換) コマンドを利用することです。ODBCコマンドを利用することです。この場合、コードは以下のようになります:
汎用SQLコマンドに関する詳細は4Dランゲージリファレンスマニュアルの "SQL" セクションを参照してください。
・SQLエンジンを使用する三番目の方法は4DのQUERY BY SQLコマンドを使用することです。この場合、コードは以下のようになります:
実際のところ、QUERY BY SQLコマンドは、以下のようなシンプルなSELECTクエリを実行するために使用できます:
SELECT *
FROM myTable
WHERE <SQL_Formula>
myTableは第一引数に渡されるテーブル名で、SQL_Formulaは第二引数に渡されるクエリ文字列です:
QUERY BY SQL(myTable;SQL_Formula)
今回の場合WHERE節がありません。そこで"ID <> 0"を使用しています。同等のSQLは以下のようになります:
SELECT *
FROM MOVIES
WHERE ID <> 0
・SQLエンジンを使用する四番目の方法は、ダイナミックなSQLコマンドEXECUTE IMMEDIATEを使用することです。クエリは以下のようになります:
以上の例題をテストするには、Video Libraryデータベースを起動し、メインダイアログボックスを開きます。ダイアログの左にクエリモードを選択するエリアがあります: 4Dコード、SQLコード、ODBCコマンド、QUERY BY SQLコマンド、またはダイナミックSQLから選択できます:
"SQLクエリ結果を変数にとる"ボタンをクリックします。