Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datentyp des Feldes auslesen (https://www.delphipraxis.net/69869-datentyp-des-feldes-auslesen.html)

RWarnecke 21. Mai 2006 15:15

Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos / IB

Datentyp des Feldes auslesen
 
Hallo,

ich habe da ein kleines Problem. Ich möchte ganz gerne über die Zeos - Komponenten 6.5.1 die Anzahl der Felder einer Tabelle und dessen Typen auslesen. Wenn ich die IB-Komponenten benutze funktioniert alles wunderbar, nur wenn ich den gleichen Code mit den Zeos-Komponenten anwende funktioniert es bei der Datenbank MySQL aber nicht bei Firebird. Was läuft da falsch ?

Um die Anzahl zu bekommen benutze ich folgende Zeile :
Delphi-Quellcode:
 anzahl := Query.FieldCount;

Um dem Typ des Feldes zu ermitteln, benutze ich die folgenden Code (habe ich hier in der Library gefunden) :
Delphi-Quellcode:
      Case ZQuery.Fields[IntZaehler].datatype Of
        ftUnknown:
          Begin
            sType := 'Unknown';
          End;
        ftString:
          Begin
            sType := 'String';
          End;
       .
       .
       .
      end;
Kann mir da jemand weiterhelfen ?

stifflersmom 21. Mai 2006 15:46

Re: Datentyp des Feldes auslesen
 
Ich denke mal die Menge an Fields ist 0-basierend:

Also muß Deine Anzahl so ermittelt werden:
Delphi-Quellcode:
zahl := Query.FieldCount-1;
Moin

RWarnecke 21. Mai 2006 16:01

Re: Datentyp des Feldes auslesen
 
Zitat:

Zitat von stifflersmom
Ich denke mal die Menge an Fields ist 0-basierend:

Also muß Deine Anzahl so ermittelt werden:
Delphi-Quellcode:
zahl := Query.FieldCount-1;
Moin

Dann wäre der Wert von "Zahl" = -1;

marabu 21. Mai 2006 16:34

Re: Datentyp des Feldes auslesen
 
Hallo Rolf,

hast du dir schon die Komponenten TZSQLMetaData und TIBExtract angesehen?

Grüße vom marabu

RWarnecke 21. Mai 2006 16:44

Re: Datentyp des Feldes auslesen
 
Nee, habe ich noch nicht angeschaut. Habe aber mittlerweile herausgefunden, dass wenn ich das Protokol von "firebird-1.5" auf "interbase-6" ändere in der ZConnection, dann funktioniert es auch.

Edit :
Wenn ich das gleiche mit SQLMetaData mache, bekomme ich trotzdem noch den Wert 0 bei der Anzahl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 Uhr.

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