コンポーネントメソッドはフィールドを名前で参照すると便利
日付 | 2011/04/14 |
---|---|
ID | 76292 (英語原文参照) |
バージョン | 11 |
プラットフォーム | Mac/Win |
コンポーネントメソッドは, ポインタでホストデータベースのフィールドを参照するのが基本です。これには, ホストデータベースからメソッドの引数でポインタを受け取ったり, Field関数に番号を返すなどの方法が考えられますが, コードの読みやすさや使いやすさという面では, テーブルを名前で参照するのが便利です。
コンポーネントメソッドの中では, SQL言語でシステムテーブルを参照することができます。それでまずSQL言語で名前からテーブル番号とフィールド番号を特定し, 続いて4D言語で番号をフィールドポインタに変換すれば, 汎用的なコンポーネントコードが記述できます。
C_TEXT($1;$tableName_t) C_TEXT($2;$fieldName_t) C_POINTER($0;$fieldPointer_p) C_LONGINT($tableNumber_l;$fieldNumber_l) $tableName_t:=$1 $fieldName_t:=$2 Begin SQL SELECT TABLE_ID, COLUMN_ID FROM _USER_COLUMNS WHERE TABLE_NAME = :$tableName_t AND COLUMN_NAME = :$fieldName_t INTO :$tableNumber_l, :$fieldNumber_l; End SQL $fieldPointer_p:=Field($tableNumber_l;$fieldNumber_l) $0:=$fieldPointer_p