SQLクエリーの結果を直接配列タイプのリストボックスに表示することができます。これによりSQLクエリーの結果を素早く見る方法が提供されま す。SELECTタイプのクエリーのみを使用できます。このメカニズムは外部SQLデータベースには使用できません。
この機能は以下の原則に基づいて動作します:
- クエリーの結果を受け取るリストボックスを作成します。リストボックスのデータソースは配列に設定しなければなりません。
- SELECTタイプのSQLクエリーを実行し、結果をリストボックスに割り当てた変数に受け取ります。Begin SQL/End SQL キーワードを使用できます (4Dランゲージリファレンス参照)。
- ユーザーはリストボックス列をソートしたり、更新したりできます。
- SELECTクエリーを実行するたびに、リストボックス列はリセットされます (複数のSELECTクエリーを実行して、リストボックスに行を追加することはできません)。
- SQL クエリーの結果受け取る列数と同じ数の列をリストボックスに用意することを推奨します。[#cmd id="18499"/]クエリーにより返される列数よりもリストボックスの列数が少ない場合、自動で列が追加されます。[#cmd id="18499"/]クエリーの結果よりも多い列数がある場合、不必要な列は自動で隠されます。
注: 自動で追加された列は、 配列型の [#title id="728" anchor="202551"/] にバインドされます。これらのダイナミック配列はフォームが閉じられるまで存在します。またダイナミック変数は各ヘッダー用にも作成されます。LISTBOX GET ARRAYSコマンドが呼び出されると、arrColVars引数にはダイナミック配列へのポインターが、arrHeaderVars引数にはダイナミックヘッダー変数へのポインターが返されます。例えば5つの列が追加されると、5番目の列の配列名はsql_column5でヘッダー名はsql_header5となります。 - インタープリターモードでは、SQLクエリーにより返されたデータに基づき、自動でリストボックスの既存の配列が型変更される場合があります。
例
PEOPLEテーブルのすべてのフィールドのデータを取得し、vlistboxという変数名のリストボックスに結果を表示します。これを行うためのメソッドは以下の通りです:
Begin SQL
SELECT * FROM PEOPLE INTO <<vlistbox>>
End SQL