Tips

プライマリーキーのフィールド番号を求める

日付2015/06/25
ID15-006
バージョン13以降
プラットフォームWindows. Mac

プライマリーキー(主キー)をプログラムで得るには、4Dのシステムテーブルにアクセスする必要があります。システムテーブルにアクセスするためには、SQLを使います。

資料:SQLリファレンス・システムテーブル

次の例題は、任意のテーブル番号を与えて、プライマリーキーの設定されたフィールド番号を返すメソッドです。存在しないテーブル番号やプライマリーキーが設定されていないテーブルの場合には、戻り値に0(ゼロ)が返されます。

C_LONGINT($1;$table_ID)
C_LONGINT($0;$field_ID)
$table_ID:=$1
Begin SQL
SELECT COLUMN_ID
FROM _USER_CONS_COLUMNS
INNER JOIN _USER_CONSTRAINTS
ON _USER_CONS_COLUMNS.CONSTRAINT_ID = _USER_CONSTRAINTS.CONSTRAINT_ID
WHERE _USER_CONSTRAINTS.CONSTRAINT_TYPE = 'P' AND _USER_CONS_COLUMNS.TABLE_ID = :$table_ID
INTO :$field_ID
End SQL
$0:=$field_ID

参考:Utility method that returns the primary key's field id