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