![]() |
ADO - Tabellenname herausfinden anhand eines DBEdits
Hallo Boardies,
weiß zufällig jemand, wie ich anhand eines TDBEdits an den dahinter stehenden Tabellennamen (Name in der Datenbank, nicht von der TADOTable) komme? Hatte gedacht das ginge über die DataSource, aber da habe ich mich irgendwie geirrt! Für Tipps und Anregungen bin ich wie immer sehr dankbar! Gruß Matt |
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
naja, hab grad ma gekuckt.. kam zum ergebniss, dass bei mir der tabellenname in der tadotable eingetragen ist und alle anderen komponenten z.b. datasource draufzugreifen..
|
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
hat mit dbedit nix zu tun, aber vielleicht ...
alle verfügbaren tabellen der db werden in ein stringlist geschrieben:
Delphi-Quellcode:
var SL: TStrings;
{----- stringlist die alle tabelle der datenbank übergeben bekommt ---------} SL := TStringList.Create; ADOconnection.GetTableNames(SL, false); {alle tabellen aus der db auslesen} |
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
Danke Markon,
das mit allen Tables kenne ich, nützt mir aber leider nix, da ich immer nur die eine brauche, von dem dbedit, in dem ich gerade bin :cry: Gruß Matt |
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
TDBEdit -> TDataSource -> TADOTable.TableName. das ist der name der Tabelle in der Datenbank.
|
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
Zitat:
Zitat:
|
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
Danke Ihr beiden, dass Ihr Euch den Kopf so zerbrecht deswegen.
Leider habe ich es immernoch nicht hinbekommen! Ich brauche den Name als String und bei a := tdbedit(sender).DataSource.????? ist Ende!!! Gruß Matt |
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
Wenn Du Dir angewöhnen könntest, Deine Querys wie folgt zu gestalten:
SQL-Code:
dann wäre das hier die Lösung:
select Feld1
,Feld2 ... ,Feldn ,'TabellenName' as AusTabelle -- auf diese Zeile kommet es an! from TabellenName
Delphi-Quellcode:
TDBEdit(Sender).DataSource.DataSet.FieldByName('AusTabelle').AsString
|
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
@Leuselator
Danke für den Hinweis, werde mich in Zukunft bemühen den Code richtig darzustellen! Danke auch für Deinen Tipp, nur leider kann ich es nicht nachvollziehen, wie Du das meinst. Gruß Matt |
Re: ADO - Tabellenname herausfinden anhand eines DBEdits
Hey Matt: ich wollte Dich nicht bezüglich der Gestaltung (im Sinne von Darstellung) deiner Query's schulmeistern: was ich meinte ist die Zeile:
SQL-Code:
der Teil nach den 2 Minuszeichen ist nur ein Kommentar und kann weggelassen werden.
,'TabellenName' as AusTabelle -- auf diese Zeile kommet es an!
Also angenommen, Du hättest 2 Tabellen mit folenden Feldern:
Code:
dann würdest Du folgende 2 Querys dafür bauen:
Tabelle: Kunden
Felder: Vorname, Name, Geburtstag Tabelle: Artikel Felder: Nummer, Bezeichnung, Preis
SQL-Code:
und:
select Vorname
,Name ,Geburtstag ,'Kunden' AS AusTabelle from Kunden
SQL-Code:
Nun kannst Du in Delphi den Namen der Tabelle erfahren, indem Du nach dem Feld "AusTabelle" fragst. Dieses Feld ist statisch (in allen Datensätzen gleicher Wert) und hat bei der ersten Query den Inhalt: "Kunden", bei der 2. : "Artikel".
select Nummer
,Bezeichnung ,Preis ,'Artikel' AS AusTabelle from Artikel Also kannst Du im OnKlick-Ereignis eines DB-Edits den Wert aus dem dazugehörigen DataSet ermitteln:
Delphi-Quellcode:
Gruß
procedure TForm1.DBEdit1Click(Sender: TObject);
var MeineTabelle : String; begin // Onlinhilfe lesen: TDataSet.FindField // und: Assigned() if Assigned(TDBEdit(Sender).DataSource.DataSet.FindField('AusTabelle')) then MeineTabelle := TDBEdit(Sender).DataSource.DataSet.FieldByName('AusTabelle').AsString; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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