Autor |
Beitrag |
tortom1000
      
Beiträge: 175
Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
|
Verfasst: Fr 23.01.09 19:50
Hallo,
ich suche so etwas wie eine Combobox, welche die Feldnamen (nicht die Feldinhalte, sondern die Feld-Bezeichnung) einer Tabelle enthält.
Der Zweck ist die Auswahl eines Tabellenfeldes, welche man dann nach Suchbegriffen durchsuchen kann.
Hoffe, es ist verständlich genug...
Gruß
Tortom
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 24.01.09 13:34
Das ist nicht soooo einfach. dazu musst du erstmal wissen, welche Datenbank du verwendest - je nach dem
kannst du das Repository abfragen.
z.b. in Oracle schaust du dir einfach mal die Tabellen an, die mit all_* anfangen.
SQL-Anweisung 1:
| Select column_name from all_Tab_Columns where owner='ich' and Table_name='Tabelle' order by column_name. |
das Ergebnis kippst du in die Combobox.
:-)Msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
dummzeuch
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: Sa 24.01.09 21:54
tortom1000 hat folgendes geschrieben : |
ich suche so etwas wie eine Combobox, welche die Feldnamen (nicht die Feldinhalte, sondern die Feld-Bezeichnung) einer Tabelle enthält.
|
Die rxlib hatte eine solche Komponente und da sie in die JVCL aufgenommen wurde, sollte es sie dort auch geben. Ich habe allerdings keine Ahnung, wie sie hiess/heisst.
twm
|
|
espen
      
Beiträge: 90
Erhaltene Danke: 1
D6 Prof./D7 Prof. MSSQL, MySQL
|
Verfasst: Mo 26.01.09 14:49
Hallo,
solltest Du via ADO auf die Datenbank zugreifen könnte Dir auch:
Delphi-Quelltext 1:
| AdoConnection1.GetFieldNames('Tabellenname', aList) |
helfen.
Gruss,
Espen
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Mo 26.01.09 14:57
ein Query mit
'Select * from Tabelle where 1 = 0'
öffnet dir nen leeren Query, in dem die Struktur der Tabelle steckt.
ein
Delphi-Quelltext 1: 2: 3: 4:
| for i := 0 to Query.Fieldcount-1 do showmessage(query.Fields[i].FieldName); |
zeigt dir alle namen der Felder.
So mach ichs zumindest in Interbase
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 26.01.09 15:37
Bei den meisten Datenbanksystemen kann man das Dictonary per SQL abfragen. Daher sollest Du uns verraten, welche Datenbank zu vewendest.
Für Firebird kann man es z.B. so machen:
SQL-Anweisung 1:
| select rdb$field_name from rdb$relation_fields where rdb$relation_name = :name order by rdb$field_position |
Wobei der Parameter "name" mit dem Tabellennamen zu füllen ist.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
tortom1000 
      
Beiträge: 175
Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
|
Verfasst: Fr 30.01.09 22:16
Hallo,
sorry, ich war ein paar Tage außer Haus, daher antworte ich erst jetzt.
Ich verwende Firebird.
Ich habe jetzt manuell eine "normale" Combobox mit den Werten einer SQL-Abfrage gefüllt.
War letztlich doch weniger Aufwand, als ich angenommen hatte.
Vielen Dank für eure Hilfe.
Tortom
|
|