Tips

SQLクエリを受け取ったリストボックスの列 (2)

日付2009/01/01
ID09-016
バージョン11
プラットフォームWin & Mac

SQLクエリの結果を配列の代わりに4D v11 SQLのリストボックスで受け取った場合、そして返された列の数がリストボックスオブジェクトのプロパティリストで定義された列の数を超えていた場合、SQLエンジンは結果を収めるために必要な数の列を追加する必要があります。閲覧するだけならこれでもじゅうぶんですが、SQLエンジンが作成するそのような配列にはコマンドでアクセスする術がありません。

たとえばリストボックスの列数が2であり、それぞれの配列が"Column1"および"Column2"だったとします。このオブジェクトにSQLクエリを流し込んだ場合、足りない分の列はSQLエンジンが作成する"sql_column"で始まる配列で補われます。GET LISTBOX ARRAYSで返されるこれらの配列に対するポインタはNULLであり、アクセスはできません。

こうした事態を避けるためには、あらかじめじゅうぶんな数の列数をリストボックスに設定しておくことが肝要です。これはリストボックスオブジェクトのプロパティリストで設定します。

SQLクエリの結果として値を代入された配列はすべて表示され、超過する分の配列はTEXT配列となり、空のデータで行数が埋められます。結果としてSQLクエリで返されるデータにはアクセスができ、余分な列もほとんどメモリを消費しません。