![]() |
Datenbank: ABS • Version: 488 • Zugriff über: Datascore
Herausbekommen, um welchen Feldtype es sich handelt?
Wie bekommt man bei einer Tabelle raus, um welchen Feldtype es sich handelt (Interger oder String, usw.)?
|
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Hat denn Keiner einen Vorschlag?
|
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Hallo Heike,
keine Ahnung von DataScore, aber ABSQuery.FieldByName('ID').DataType liefert dir die Werte, die in der Online-Hilfe unter TFieldType ausgewiesen werden. Grüße vom marabu |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
öhm
Delphi-Quellcode:
ein strg+linksklick auf eines der ft* wörter sollte die passende unit öffnen in der alle anderen typen definiert sind, damit du weist welche datentypen es noch gibt
var
xTTable: TTable; case xTTable.Fields[Index].DataType of ftCurrency: ; ftBlob: ; ftGraphic: ; end; ich hoffe das taugt was ;) |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Das hilft mir schon weiter. Nur wie bekomme ich das Angezeigt?
Delphi-Quellcode:
geht nicht! Da bekomme ich eine Fehlermeldung "Inkompatiebele Typen..".
Edit1.Text := ABSQuery.FieldByName('ID').DataType;
|
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Heike. |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
ps@marabu: stimmt, warum kompliziert wenn's einfach geht ;) |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Delphi-Quellcode:
marabu
Edit1.Text := DB.FieldTypeNames[ABSQuery.FieldByName('ID').DataType];
|
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Hai Heike,
bei der ABS-DB ist sogar eine Funktion dabei welche dir den ABS-Feldtyp als String ausgibt. Ich bin zur Zeit leider nicht zu Hause. Ich habe das ganze nämlich gerade selber gebraucht um mir aus einer ABSTable einen Delphi-Record mit einer Variablen pro Spalte zu erzeugen. Ich kann dir das heute abend mal rüber geben. Oder Du schaust Dir mal den quellcode des DBManagers an der ja bei der ABS-DB dabei ist ;-) [Edit]Hier mal ein Code der die Feldtypen einfach in ein Memo schreibt[/edit]
Delphi-Quellcode:
uses
ABSConverts; procedure TForm1.Button1Click(Sender: TObject); var feldname : string; feldtyp : string; begin Memo1.Clear; for ndx := 0 to Pred(ABSTable1.FieldCount) do begin feldname := ABSTable1.AdvFieldDefs[ndx].Name feldtyp := AftToStr(ABSTable1.AdvFieldDefs[ndx].DataType); Memo1.Lines.add (feldname + ' - ' + feldtyp); end; end; |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Delphi-Quellcode:
Wie bis Du darauf gekommen? Ich habe es das ganze Wochenende versucht, ohne Erfolg! Wie kommt man auf sowas?
uses
ABSConverts;
Delphi-Quellcode:
Das kann ich nachvollziehen! Bis Du ABSExperte?
procedure TForm1.Button1Click(Sender: TObject);
var feldname : string; feldtyp : string; begin Memo1.Clear; for ndx := 0 to Pred(ABSTable1.FieldCount) do begin feldname := ABSTable1.AdvFieldDefs[ndx].Name feldtyp := AftToStr(ABSTable1.AdvFieldDefs[ndx].DataType); Memo1.Lines.add (feldname + ' - ' + feldtyp); end; end; Vielen Dank auch an alle Anderen! |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Ich habe mir den Quellcode des ABS-DBManagers angesehen und geschaut wie die das machen. Dabei habe ich die Funktion AftToStr gesehen. Jetzt bin ich einfach in meiner IDE mit dem Cursor über die Funktion gegangen und Delphi hat mir angezeigt in welcher Unit sie deklariert ist. Zitat:
|
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Zitat:
|
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Moin, moin,
dass Delphi gleich die Unit mit anzeigt, bei Cursor über Funktion, das kenne ich auch noch nicht (D6). Allerdings kannst Du die Strg-Taste drücken und dann mit dem Mousecursor über die Funktion gehen. Die wird dann als Link hervorgehoben. Clickst Du dann springt die IDE zur Funktion und Unit wo diese deklariert ist. Es ist schon länger her, meine aber dass dies auch bei D5 geht. Grüße // Martin |
Re: Herausbekommen, um welchen Feldtype es sich handelt?
Zitat:
Heike. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr. |
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-2025 by Thomas Breitkreuz