AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellenname ermitteln ?

Ein Thema von Hansa · begonnen am 6. Feb 2011 · letzter Beitrag vom 6. Feb 2011
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Tabellenname ermitteln ?

  Alt 6. Feb 2011, 16:24
Datenbank: FB • Version: 2.X • Zugriff über: FibPlus
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 ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 16:27
Akzeptiert Firebird "SHOW TABLES"?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 16:34
Über die Systemtabellen (RDB$...) kommt man da ran. Nützt aber in dem Fall nichts, weil ich den Tabellennamen brauche, bei gegebenem Dataset.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 16:39
Da müsstest du den String Parsen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 16:39
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 17:22
Hi,

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

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 17:59
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 18:04
Das liefert alle Tabellen. Er will aber die Tabelle, welche in einem Statement angesprochen wird
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 18:42
Jo, RDB$. War klar. Auch Beitrag #3 hat da nichts genützt. 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".
Gruß
Hansa

Geändert von Hansa ( 6. Feb 2011 um 18:53 Uhr)
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#10

AW: Tabellenname ermitteln ?

  Alt 6. Feb 2011, 18:48
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
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
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