Objektnamen (FireDAC)
Nach oben zu Arbeiten mit Metadaten (FireDAC)
Inhaltsverzeichnis
Allgemeine Informationen
Die folgenden Eigenschaften geben die Datenbankobjektnamen an:
- TFDStoredProc: CatalogName, SchemaName, PackageName und StoredProcName
- TFDTable: CatalogName, SchemaName und TableName
- TFDBottomUpdateOptions: UpdateTableName
- TFDUpdateOptions: GeneratorName
- TFDAutoIncField: GeneratorName
- usw.
Ein Name kann folgendermaßen angegeben werden:
- Ohne Anführungszeichen; FireDAC normalisiert den Namen
- In Anführungszeichen; FireDAC verwendet den Namen wie angegeben
Beispiel für Firebird mit SQL, Dialekt 3:
DDL | Richtig | Falsch |
---|---|---|
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'; |
Objektnamen in Anführungszeichen
FireDAC unterstützt Objektnamen in Anführungszeichen, einschließlich verschiedener DBMS-Anführungszeichen. Mit der Syntax {id <Name>} können Sie einen Namen in Anführungszeichen in einer SQL-Anweisung in einer vom jeweiligen DBMS unabhängigen Form schreiben. Zum Beispiel:
SELECT * FROM {id Order Details}
Damit TFDTable Feldnamen in Anführungszeichen setzt, legen Sie für FormatOptions.QuoteIdentifiers FormatOptions.QuoteIdentifiers True fest.
Vollständige Objektnamen
FireDAC unterstützt vollständige Objektnamen, die die Katalog- und/oder die Schemanamen enthalten.
Bei Verwendung der Entwurfszeiteditoren, wie einem TFDStoredProc.StoredProcName-Kombinationsfeld, dem Abfragegenerator usw., werden die vollständigen Objektnamen zurückgegeben. Mit den Verbindungsdefinitionsparametern MetaDefCatalog und MetaDefSchema vermeiden Sie Katalog- und/oder Schemanamen in den vollständigen Objektnamen. Zum Beispiel:
[MSSQL_Demo] DriverID=MSSQL ... MetaDefCatalog=Northwind MetaDefSchema=dbo
Wenn für StoredProcName, TableName usw. kurze Objektnamen angegeben sind, werden sie zu vollständigen Objektnamen mit den aktuellen Katalog- und/oder Schemanamen erweitert. Mit den Verbindungsdefinitionsparametern MetaCurCatalog und MetaCurSchema überschreiben oder vermeiden Sie die Verwendung der aktuellen Katalog- und/oder Schemanamen. Zum Beispiel:
[MSSQL_Demo] DriverID=MSSQL ... MetaCurCatalog=* MetaCurSchema=*
Darüberhinaus können Sie beim Entwurf FireDAC dazu veranlassen, die Objektnamen ohne Katalog- und/oder Schema zurückzugeben. Deaktivieren Sie dazu im IDE-Menü FireDAC > Voreinstellungen den Eintrag Vollständige Objektnamen verwenden.