Tips

コンポーネントメソッドはテーブルを名前で参照すると便利

日付2011/04/14
ID76291 (英語原文参照)
バージョン11
プラットフォームMac/Win

コンポーネントメソッドは, ポインタでホストデータベースのテーブルを参照するのが基本です。これには, ホストデータベースからメソッドの引数でポインタを受け取ったり, Table関数に番号を返すなどの方法が考えられますが, コードの読みやすさや使いやすさという面では, テーブルを名前で参照するのが便利です。

コンポーネントメソッドの中では, SQL言語でシステムテーブルを参照することができます。それでまずSQL言語で名前からテーブル番号を特定し, 続いて4D言語で番号をテーブルポインタに変換すれば, 汎用的なコンポーネントコードが記述できます。

C_TEXT($1;$tableName_t)
C_POINTER($0;$tablePointer_p)

C_LONGINT($tableNumber_l)

$tableName_t:=$1

Begin SQL
SELECT TABLE_ID
FROM _USER_TABLES
WHERE TABLE_NAME = :$tableName_t
INTO :$tableNumber_l;
End SQL
$tablePointer_p:=Table($tableNumber_l)

$0:=$tablePointer_p