Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Tabellenname ermitteln ? (https://www.delphipraxis.net/158115-tabellenname-ermitteln.html)

Hansa 6. Feb 2011 15:24

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 ?

rollstuhlfahrer 6. Feb 2011 15:27

AW: Tabellenname ermitteln ?
 
Akzeptiert Firebird "SHOW TABLES"?

Bernhard

Hansa 6. Feb 2011 15:34

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.

mkinzler 6. Feb 2011 15:39

AW: Tabellenname ermitteln ?
 
Da müsstest du den String Parsen.

rollstuhlfahrer 6. Feb 2011 15:39

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

dataspider 6. Feb 2011 16:22

AW: Tabellenname ermitteln ?
 
Hi,

möglicherweise sollte RelationTables (TFIBCustomDataSet) Tabellennamen liefern.
Origin vom Field sollte den Tabellennamen auch enthalten.

Frank

RWarnecke 6. Feb 2011 16:59

AW: Tabellenname ermitteln ?
 
Versuche mal folgende Abfrage :
Code:
select * from RDB$RELATIONS where RDB$SYSTEM_FLAG = 0;
Die Spalte RDB$RELATION_NAME sollte dann das entsprechende Ergbenis liefern.

mkinzler 6. Feb 2011 17:04

AW: Tabellenname ermitteln ?
 
Das liefert alle Tabellen. Er will aber die Tabelle, welche in einem Statement angesprochen wird

Hansa 6. Feb 2011 17:42

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:
function TabellenName (DS : TpFIBDataSet) : string;
var st : string;
begin
  st := DS.SQLFieldName('ID');
  st := Copy (st,1,Length (st) - 3);
  TabellenName := st;
end;
Im Beispiel würde das "TESTTABELLE.ID" liefern. Letzt 3 Buchstaben weg => "TESTTABELLE".

alex517 6. Feb 2011 17:48

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:
var
  F: TField;
begin
  FIBDataSet1.open;
  F := FIBDataSet1.Fields[0];
  Memo1.Lines.Text := FIBDataSet1.GetRelationTableName(F);
end;
alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz