Tips

SQLの結果をリストボックスで表示させるときの注意点

日付2014/02/13
ID14-001
バージョン11以降
プラットフォームWin, Mac

SQL EXECUTEやINTO句を使って、簡単にリストボックスに結果を入れることができます。しかし、同じリストボックスに対してなんの対処もなしに何度も実行すると、以前表示していた配列が残るためメモリーリークします。

何度も同じリストボックスにSQLの結果を代入するのであれば、代入する前にリストボックスのカラムを全て削除するようにしなければなりません。

コード例

// SQListBoxはリストボックスのオブジェクト名かつ変数名

//全てのカラムを削除する
C_LONGINT($num_colm)
$num_colm:=LISTBOX Get number of columns(*;"SQListBox")
For ($i;1;$num_colm)
LISTBOX DELETE COLUMN(*;"SQListBox";1)
End for 

//SQLの実行
SQL LOGIN("ODBC:v14_test";"Designer";"")
SQL EXECUTE(SQL_Statement;SQListBox)
SQL LOAD RECORD(SQL all records)
SQL LOGOUT

注:このコードはv11では動作しません

参考資料