Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO - Tabellenname herausfinden anhand eines DBEdits (https://www.delphipraxis.net/14528-ado-tabellenname-herausfinden-anhand-eines-dbedits.html)

Matt 10. Jan 2004 22:01


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

markon 12. Jan 2004 09:27

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..

markon 12. Jan 2004 09:46

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}

Matt 12. Jan 2004 11:51

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

r_kerber 12. Jan 2004 12:01

Re: ADO - Tabellenname herausfinden anhand eines DBEdits
 
TDBEdit -> TDataSource -> TADOTable.TableName. das ist der name der Tabelle in der Datenbank.

markon 12. Jan 2004 13:39

Re: ADO - Tabellenname herausfinden anhand eines DBEdits
 
Zitat:

Zitat von r_kerber
TDBEdit -> TDataSource -> TADOTable.TableName. das ist der name der Tabelle in der Datenbank.

hmm, das wollte er eigentlich nicht, hatte ich auch schon in erwägung gezogen, aber:

Zitat:

Zitat von matt
weiß zufällig jemand, wie ich anhand eines TDBEdits an den dahinter stehenden Tabellennamen (Name in der Datenbank, nicht von der TADOTable) komme? ...

weiß aber auch nich wie's anders funzt...

Matt 13. Jan 2004 17:11

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

Leuselator 14. Jan 2004 14:15

Re: ADO - Tabellenname herausfinden anhand eines DBEdits
 
Wenn Du Dir angewöhnen könntest, Deine Querys wie folgt zu gestalten:

SQL-Code:
select Feld1
       ,Feld2
       ...
       ,Feldn
       ,'TabellenName' as AusTabelle -- auf diese Zeile kommet es an!
  from TabellenName
dann wäre das hier die Lösung:
Delphi-Quellcode:
TDBEdit(Sender).DataSource.DataSet.FieldByName('AusTabelle').AsString

Matt 15. Jan 2004 21:03

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

Leuselator 16. Jan 2004 05:55

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:
,'TabellenName' as AusTabelle -- auf diese Zeile kommet es an!
der Teil nach den 2 Minuszeichen ist nur ein Kommentar und kann weggelassen werden.
Also angenommen, Du hättest 2 Tabellen mit folenden Feldern:
Code:
Tabelle: Kunden
Felder: Vorname,
         Name,
         Geburtstag

Tabelle: Artikel
Felder: Nummer,
         Bezeichnung,
         Preis
dann würdest Du folgende 2 Querys dafür bauen:
SQL-Code:
select Vorname
       ,Name
       ,Geburtstag
       ,'Kunden' AS AusTabelle
  from Kunden
und:
SQL-Code:
select Nummer
       ,Bezeichnung
       ,Preis
       ,'Artikel' AS AusTabelle
  from Artikel
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".
Also kannst Du im OnKlick-Ereignis eines DB-Edits den Wert aus dem dazugehörigen DataSet ermitteln:
Delphi-Quellcode:
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;
Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 1 von 2  1 2      

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