Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Herausbekommen, um welchen Feldtype es sich handelt? (https://www.delphipraxis.net/47996-herausbekommen-um-welchen-feldtype-es-sich-handelt.html)

smart 19. Jun 2005 09:49

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.)?

smart 20. Jun 2005 09:06

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
Hat denn Keiner einen Vorschlag?

marabu 20. Jun 2005 09:13

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

barf00s 20. Jun 2005 09:15

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
öhm

Delphi-Quellcode:
var
  xTTable: TTable;

case xTTable.Fields[Index].DataType of
  ftCurrency: ;
  ftBlob: ;
  ftGraphic: ;
end;
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


ich hoffe das taugt was ;)

smart 20. Jun 2005 09:29

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
Zitat:

Zitat von marabu
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

Vielen Dank, marabu.
Das hilft mir schon weiter. Nur wie bekomme ich das Angezeigt?
Delphi-Quellcode:
Edit1.Text := ABSQuery.FieldByName('ID').DataType;
geht nicht! Da bekomme ich eine Fehlermeldung "Inkompatiebele Typen..".

smart 20. Jun 2005 09:32

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
Zitat:

Zitat von barf00s
öhm

Delphi-Quellcode:
var
  xTTable: TTable;

case xTTable.Fields[Index].DataType of
  ftCurrency: ;
  ftBlob: ;
  ftGraphic: ;
end;
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


ich hoffe das taugt was ;)

Ja, alles Klaro, damit komme ich zurecht. Vielen Dank.

Heike.

NicoDE 20. Jun 2005 09:41

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
Zitat:

Zitat von smart
Nur wie bekomme ich das Angezeigt?
Delphi-Quellcode:
Edit1.Text := ABSQuery.FieldByName('ID').DataType;
geht nicht! Da bekomme ich eine Fehlermeldung "Inkompatiebele Typen..".

Um eine Aufzählung in einen String zu konvertieren, könnte man die Funktion GetEnumValue verwenden (Beispiele gibt's sicher genug im Forum).

ps@marabu: stimmt, warum kompliziert wenn's einfach geht ;)

marabu 20. Jun 2005 10:01

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
Zitat:

Zitat von smart
Nur wie bekomme ich das Angezeigt?

Delphi-Quellcode:
Edit1.Text := DB.FieldTypeNames[ABSQuery.FieldByName('ID').DataType];
marabu

Sharky 20. Jun 2005 10:35

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;

smart 21. Jun 2005 08:19

Re: Herausbekommen, um welchen Feldtype es sich handelt?
 
Zitat:

Zitat von Sharky
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 ;-)

Vielen Dank. Haut hin.
Delphi-Quellcode:
uses
  ABSConverts;
Wie bis Du darauf gekommen? Ich habe es das ganze Wochenende versucht, ohne Erfolg! Wie kommt man auf sowas?
Delphi-Quellcode:
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;
Das kann ich nachvollziehen! Bis Du ABSExperte?

Vielen Dank auch an alle Anderen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz