注意: 9.1 組み込み関数の規則 利用オプション |
この組み込み関数を使って、データベース・テーブルのオーナー名やデータベース・テーブル名を上書きできます。
通常、この組み込み関数は、アプリケーションのインストール時に、ファイル (テーブル) に関連付けられたライブラリ (スキーマ名) が変更された時に使用されます。この場合、テーブルはインストール・スキーマ名でデータベース内に作成されますが、提供の OAM は、OAM 生成時の LANSA ライブラリに埋め込まれます。アプリケーション実行時にこのファイルにアクセスするには、アプリケーションで DEFINE_FILE_OVERRIDE を使って、OAM を現在のインストールに適切な LANSA ライブラリにリダイレクトする必要があります。詳細は「上書きが必要となる理由」および「SuperServerやLANSA Open.Netを利用したDefine_Override_Fileの使用」を参照してください。
このデータベースの上書きが有効なのは現セッション終了までです。
DEFINE_OVERRIDE_FILEの機能はSELECT_SQLの自由形式のコマンドには利用できません。
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 任意 | ファイル・ライブラリ名 ファイル・ライブラリ名が指定されない場合、定義された上書き全てを削除します。 | 1 | 10 | ||
2 | A | 任意 | ファイル名 | 1 | 10 | ||
3 | A | 任意 | データベース・テーブルのオーナー名を上書きします。 上書きするデータベース・テーブルのオーナーやテーブル名が指定されない場合、前回定義された上書きを削除します。 | 1 | 128 | ||
4 | A | 任意 | データベース・テーブル名を上書きします。 上書きするデータベース・テーブルのオーナーやテーブル名が指定されない場合、前回定義された上書きを削除します。 | 1 | 128 |
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | 戻りコード:OK | 2 | 2 |
アプリケーションがインストールされる時は、OAM 生成時の LANSA ライブラリに埋め込まれた、1 つの OAM しかインストールされません。アプリケーション・ファイルが OAM に埋め込まれたライブラリと異なるライブラリにインストールされた場合、OAM はランタイム時に適切な LANSA ライブラリにリダイレクトされなければいけません。LANSAライブラリはデータベースに相当するものにマップされ、これには異なるデータベース・マネージャで別の名前が付けられています。様々な呼び名がありますが、これがスキーマ、オーナー、コレクションと言われるものです。
以下はこのプロセスの概要です。
アプリケーションには、この区画ファイル・ライブラリにインストールされたファイルがあります。通常はこの区画ファイル・ライブラリは"生成"ライブラリと同じ名前ではありません。もし、これが同じ名前であれば、生成時の上書きで区画ファイル・ライブラリも上書きされてしまいます。ファイルは常に同じライブラリにアクセスしなければいけないので、これでは期待通りの結果を得ることはできません。
DEFINE_OVERRIDE_FILEは実行中のRDMLのローカル・データベース上で作動します。データベースのIOが実行されると、OAMはOAMが実行されているマシンやプロセスのファイル上書きをチェックします。ですから、サーバー上でOAMを実行するには、ファイルの上書きはCALL_SERVER_FUNCTIONを使用して、DEFINE_OVERRIDE_FILEを正しく呼び出す必要があります。これは、SuperServerもLANSA Open .Netでも同じことが言えます。
説明 | ファイル・ライブラリ名 | ファイル名 | データベース・テーブル・オーナー名の上書き | データベース・テーブル名の上書き |
|---|---|---|---|---|
特定のファイル・ライブラリ名の全てのファイルを異なるデータベース・テーブル・オーナーに上書き | X | *Default | X | |
特定のファイルを異なるデータベース・テーブル・オーナーに上書き | X | X | X | |
特定のファイルを異なるデータベース・テーブル・オーナーで異なるデータベースに上書き | X | X | *Default | X |
特定のファイルを異なるデータベース・テーブルに上書き | X | X | X | X |
説明 | ファイル・ライブラリ名 | ファイル名 | データベース・テーブル・オーナー名の上書き | データベース・テーブル名の上書き |
|---|---|---|---|---|
全ての定義された上書きを削除する | ||||
ファイル・ライブラリの上書きを削除する | X | |||
特定のファイルの上書きを削除する | X | X |
Use BIF(Define_Override_File) ('DC@DEMOLIB' *Default 'ABC') To_Get(#retcode) Use BIF(Define_Override_File) ('DC@DEMOLIB' 'PSLMST' 'ABC') To_Get(#retcode) Use BIF(Define_Override_File) ('DC@DEMOLIB' 'PSLMST' *Default 'XYZ') To_Get(#retcode) Use BIF(Define_Override_File) ('DC@DEMOLIB' 'PSLMST' 'ABC' 'XYZ') To_Get(#retcode)Use BIF(Define_Override_File) To_Get(#retcode)
Use BIF(Define_Override_File) ('DC@DEMOLIB') To_Get(#retcode) Use BIF(Define_Override_File) ('DC@DEMOLIB' 'PSLMST') To_Get(#retcode)