![]() |
Datenbank: FB • Version: 2.X • Zugriff über: FibPlus
Tabellenname ermitteln ?
Moin,
ich habe hier ein DataSet. Damit sollen einzelne Datensätze einer Tabelle gelesen werden. Es geht nicht um Joins oder sonstwas. Z.B.: "SELECT * FROM TESTTABELLE WHERE NR=:NR". Gibt es eine Möglichkeit, aus Delphi heraus an den Namen der Tabelle, in diesem Fall "TESTTABELLE" zu kommen ? |
AW: Tabellenname ermitteln ?
Akzeptiert Firebird "SHOW TABLES"?
Bernhard |
AW: Tabellenname ermitteln ?
Über die Systemtabellen (RDB$...) kommt man da ran. Nützt aber in dem Fall nichts, weil ich den Tabellennamen brauche, bei gegebenem Dataset.
|
AW: Tabellenname ermitteln ?
Da müsstest du den String Parsen.
|
AW: Tabellenname ermitteln ?
Wie machst du das DataSet auf? - Gibts da keinen Tabellennamen?
Ansonsten fällt mir noch spontan ein: Tabellenstruktur mit den Strukturen aller Tabellen vergleichen. Bernhard |
AW: Tabellenname ermitteln ?
Hi,
möglicherweise sollte RelationTables (TFIBCustomDataSet) Tabellennamen liefern. Origin vom Field sollte den Tabellennamen auch enthalten. Frank |
AW: Tabellenname ermitteln ?
Versuche mal folgende Abfrage :
Code:
Die Spalte RDB$RELATION_NAME sollte dann das entsprechende Ergbenis liefern.
select * from RDB$RELATIONS where RDB$SYSTEM_FLAG = 0;
|
AW: Tabellenname ermitteln ?
Das liefert alle Tabellen. Er will aber die Tabelle, welche in einem Statement angesprochen wird
|
AW: Tabellenname ermitteln ?
Jo, RDB$. War klar. Auch Beitrag #3 hat da nichts genützt. 8-) Einfachste Möglichkeit, die ich bisher sehe ist das :
Delphi-Quellcode:
Im Beispiel würde das "TESTTABELLE.ID" liefern. Letzt 3 Buchstaben weg => "TESTTABELLE".
function TabellenName (DS : TpFIBDataSet) : string;
var st : string; begin st := DS.SQLFieldName('ID'); st := Copy (st,1,Length (st) - 3); TabellenName := st; end; |
AW: Tabellenname ermitteln ?
Hallo Hansa,
versuchs mal mit FIBDataSet1.GetRelationTableName().
Delphi-Quellcode:
var
F: TFieldDef; begin FIBDatabase1.Open; FIBDataSet1.Prepare; F := FIBDataSet1.FieldDefs[0]; Memo1.Lines.Text := FIBDataSet1.GetRelationTableName(F); end;
Delphi-Quellcode:
alex
var
F: TField; begin FIBDataSet1.open; F := FIBDataSet1.Fields[0]; Memo1.Lines.Text := FIBDataSet1.GetRelationTableName(F); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz