Autor Beitrag
Crowbar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 180

WinXP, SP2
D6 Enterprise
BeitragVerfasst: Mo 10.03.03 10:11 
Hallo,
gibt es eine Möglichkeit, bei einer vorhandenen *.dbf Tabelle, eine Routine zu programmieren, die den Namen der Tabellenfelder und der Feldtypen ausgibt? Wie kann ich dies am besten "bewerkstelligen"?
Ich möchte im Prinzip meine *.dbf Tabelle in eine SQl-Tabelle umkonvertieren und benötige natürlich die entsprechenden Info's über die *.dbf Tabelle. Natürlich kenne ich die Felder und Feldtypen meiner *.dbf Tabelle. Doch möchte ich diese Routine "allgemein", für jede +.dbf Tabelle, halten.

Tschüss Crowbar
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mo 10.03.03 10:23 
Hallo,

schau Dir einmal die Eigenschaft <b>Fields</b> einer TTable oder TQuery an. In der Delphi-Hilfe findest Du dann den Rest.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mo 10.03.03 11:01 
heyho...

und um das ma auf n punkt zu bringen.. :P hier ein auszug aus meinem db-browser:

ausblenden Quelltext
1:
2:
3:
for i := 0 to DBGrid1.FieldCount -1 do begin
ValueListEditor1.InsertRow(DBGrid1.Fields[i].FieldName, '', True);
end;


fertich.. :D

mfg
Crowbar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 180

WinXP, SP2
D6 Enterprise
BeitragVerfasst: Mo 10.03.03 11:51 
Hallo,
Danke für die Hilfe!
Dies mit den Auslesen der Feldnamen klappt wunderbar.
Mit dem Befehl "Table.Fields[i].DataType" erhalte ich ja den Feldtyp. Wie kann ich diesen Feldtyp (TFieldType) in einen "lesbaren" String umwandeln, so daß ich den Feldtyp in eine Stringvariable speichern kann? Oder muss ich den langen Weg gehen, wie z.B.

if Table.Fields[i].DataType = ftString then MeinfeldTyp:='ftString';

Tschüss Crowbar
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mo 10.03.03 13:20 
hallo,

bezüglich meiner Antwort:

Klappt natürlich nur, wenn du jenem Grid vorher deine Table zugeordnet hast und nicht mit Columns[x] nur bestimmte Felder zur Anzeige bringst.

Du kannst naturelement auch direkt aus der Table auslesen, aber ein Grid benutzt man in den meisten Fällen ja sowieso.

In meiner Methode wird der Feld-Typ ja in einer ValueList gespeichert, genauso kannst du den Wert auch in einer Variable speichern.
Ob du was beachten musst, wenn du direkt aus der Table die Feld-Typen ausliest und in einer Variable speichern willst weiß ich nicht, versuchs doch einfach mal mit MEINSTRING := TABLE.FELDTYP...

mfg