オブジェクト名(FireDAC)
メタデータの操作(FireDAC) への移動
概要
以下のプロパティはデータベース オブジェクト名を指定します。
- TFDStoredProc: CatalogName、SchemaName、PackageName、StoredProcName
- TFDTable: CatalogName、SchemaName、TableName
- TFDBottomUpdateOptions: UpdateTableName
- TFDUpdateOptions: GeneratorName
- TFDAutoIncField: GeneratorName
- その他
名前は、以下のいずれかの形式で指定できます。
- 引用符で囲まない(名前は FireDAC で正規化されます)
- 引用符で囲む(名前は FireDAC でそのまま使用されます)
たとえば、SQL ダイアレクト 3 の Firebird では以下のようになります。
DDL | 成功 | 失敗 |
---|---|---|
CREATE PROCEDURE Test | FDStoredProc1.StoredProcName := 'test';
FDStoredProc1.StoredProcName := 'TeSt'; FDStoredProc1.StoredProcName := '"TEST"'; |
FDStoredProc1.StoredProcName := '"test"'; |
CREATE PROCEDURE "Test" | FDStoredProc1.StoredProcName := '"Test"'; | FDStoredProc1.StoredProcName := 'test';
FDStoredProc1.StoredProcName := 'TeSt'; FDStoredProc1.StoredProcName := 'Test'; FDStoredProc1.StoredProcName := '"TEST"'; |
CREATE PROCEDURE "Main Proc" | FDStoredProc1.StoredProcName := '"Main Proc"'; | FDStoredProc1.StoredProcName := 'main proc';
FDStoredProc1.StoredProcName := 'Main Proc'; |
引用符付きオブジェクト名
FireDAC では、さまざまな DBMS 引用符付き文字を含め、引用符付きのオブジェクト名を完全にサポートしています。引用符付きの名前を DBMS に依存しない形式で SQL に記述するには、{id <名前>} 構文を使用します。以下に例を示します。
SELECT * FROM {id Order Details}
TFDTable でフィールド名が強制的に引用符で囲まれるようにするには、FormatOptions.QuoteIdentifiers を True に設定します。
オブジェクトの完全名
FireDAC では、オブジェクトの完全名(カタログ名やスキーマ名を含んだもの)をサポートしています。
TFDStoredProc.StoredProcName コンボ ボックスやクエリ ビルダなどの設計時エディタを使用する場合、これらはオブジェクトの完全名を返します。オブジェクトの完全名にカタログ名やスキーマ名が含まれないようにするには、接続定義パラメータ MetaDefCatalog および MetaDefSchema を使用します。以下に例を示します。
[MSSQL_Demo] DriverID=MSSQL ... MetaDefCatalog=Northwind MetaDefSchema=dbo
StoredProcName や TableName などにオブジェクトの省略名が指定された場合、それらは、現在のカタログ名やスキーマ名を使って完全名に展開されます。現在のカタログ名やスキーマ名の使用をオーバーライドしたり避けるには、接続定義パラメータ MetaCurCatalog および MetaCurSchema を使用します。以下に例を示します。
[MSSQL_Demo] DriverID=MSSQL ... MetaCurCatalog=* MetaCurSchema=*