Autor Beitrag
tortom1000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 175

Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Sa 24.01.09 21:54 
user profile icontortom1000 hat folgendes geschrieben Zum zitierten Posting springen:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 1


D6 Prof./D7 Prof. MSSQL, MySQL
BeitragVerfasst: Mo 26.01.09 14:49 
Hallo,

solltest Du via ADO auf die Datenbank zugreifen könnte Dir auch:

ausblenden Delphi-Quelltext
1:
AdoConnection1.GetFieldNames('Tabellenname', aList)					


helfen.

Gruss,
Espen
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i := 0 to Query.Fieldcount-1 do
 showmessage(query.Fields[i].FieldName);
 // query.Fields[i].DataType für den Datentyp
 // query.Fields[i].Size für die Feldlänge (bei Strings)

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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 175

Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
BeitragVerfasst: 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