Entwickler-Ecke
Datenbanken - Dynamisch eine Tabelle zuweisen
HotLaps - Fr 13.09.02 08:32
Titel: Dynamisch eine Tabelle zuweisen
Hallo, schon wieder ich!
Ich habe drei verschiedene Tabellen.
Ich möchte jetzt, je nachdem welche ausgewählt ist, meinen tollen Suchdialog (der jetzt endlich fertig ist) dafür aufrufen.
wwerner - Fr 13.09.02 09:03
Wo ist das Problem? Das kommt aus deiner Frage nicht raus!
HotLaps - Fr 13.09.02 09:12
drei Tabellen:
tblItem
tblItem_Checked_In
tblItem_Checked_Out
jetzt habe ich einen Suchdialog programmiert in dem Aufrufe vorkommen, die direkt auf die Tabelle gehen
frmMain.tblItem_Checked_In. .....
dieser Dialog soll aber für alle drei Tabellen funktionieren ohne, dass ich ihn drei mal schreibe
ich weiß die DataSourc der selektierten Tabelle
also in Suchdialog soll nicht hardcoded der Tabellenname stehen, sondern eine Variable oder sonst irgendetwas ich weiß ja auch nicht, sonst würde ich nicht fragen,
ich hoffe ich habe mich etwas verständlicher ausgedrückt, es ist schwierig zu beschreiben
wwerner - Fr 13.09.02 09:23
OK,
Du legst ein Tabellenobjekt im Suchdialog an: tblTemp
Bevor der Suchdialog augerufen wird weist du die entsprechende Tabelle aus dem MainForm deinem Tabellenobjekt im Suchform zu. In Suchform arbeitest du dann mit deiner lokalen Tabelle
LCS - Fr 13.09.02 09:25
Hi
wenn du die Datasource hast, hast du doch über Datasource.Dataset.Tablename auch den Tabellennamen der betreffenden Tabelle.
Seh ich den Wald vor lauter Bäumen nicht :?!?:
Lothar
MrSpock - Fr 13.09.02 09:27
Hallo HotLaps,
das ist prinzipiell möglich, wenn du nur ein TTable Object benutzt und die Eigenschaft TableName dynamisch anpasst. Die Tabelle muss dazu natürlich geschlossen und wieder geöffnet werden. Außerdem müssen die Tabellenstrukturen identisch sein oder du darfst nur die Felder über den Feldeditor einfügen, die bzgl. ihrer Struktur absolut identisch sind.
Alternativ könntest du TQueries nutzen und den Tabellennamen dynamisch anpassen.
HotLaps - Fr 13.09.02 09:38
LCS:
Auf die Gefahr hin mich jetzt lächerlich zu machen:
Datasource.Dataset.Tablename
eh, die Eigenschaft Tablename gibt es nicht
LCS - Fr 13.09.02 09:50
Peinlich, peinlich :oops:
TTable(Datasource.Dataset).TableName
Lothar
HotLaps - Fr 13.09.02 09:52
LCS:
ich weiß den TabellenName doch nicht;
ich möchte ihn über die DataSource herausfinden!
MrSpock - Fr 13.09.02 09:53
Hallo HotLaps,
das ist richtig, weil eine DataSet auf jede beliebige Datenmenge zeigen kann, also z.B. sowohl auf ein TTable Objekt als auch auf eine TQuery. Wenn du sicher bist, dass DataSet auf eine TTable Kompo zeigt, dann kannst du folgendes schreiben:
Quelltext
1:
| (MyDataSource.DataSet as TTable).Tablenname; |
Mit meinem Vorschlag oben kannst du aber weiterhin direkt mit dem TTable Objekt arbeiten.
UGrohne - Mi 25.09.02 11:52
Hää?
Also wenn cih das jetzt richtig verstanden habe, dann willst Du eine Suche in 3 Tabellen gleichzeitig vornehmen?
Dann würde ich Dir einen Query mit SQL vorschlagen. Als SQL-Tag einfach:
Quelltext
1:
| Select * FROM [Table1], [Table2], ... WHERE [Bedingung1] |
oder sowas, da kannste ja alles dynamisch anpassen, dann brauchste auch keine DataSource.
Hmm, irgendiwe, beim nochmaligen Durchlesen hab ich gemerkt, ihc habs doch net so richtig geblickt, aber vll. hilft Dir das da jetzt doch weiter *g*.
Grüßle[/code]
HotLaps - Fr 27.09.02 08:12
MrSpock
"oder du darfst nur die Felder über den Feldeditor einfügen"
könntest du mir bitte erklären wie das funktioniert!
Danke!
bis11 - Sa 28.09.02 10:57
Hi,
ich würde die Version von UGrohne nehmen. Nur würde ich vorher die Tabellennamen Deiner Datenbank auslesen und die als Auswahlfeld in Deinen Search-Dialog einbauen, ich komme bloß im Moment nicht drauf wie ich die Tabellennamen auslesen kann.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!