Thema: Delphi ABSQuery und FieldType

Einzelnen Beitrag anzeigen

Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
327 Beiträge
 
Delphi 10.4 Sydney
 
#1

ABSQuery und FieldType

  Alt 22. Mär 2020, 09:49
Datenbank: ABSDataBase • Version: 7.91 • Zugriff über: ABSQuery
Hallo.

Gibt es eine Möglichkeit den Feldtypen einer Tabellenspalte mittels SQL auszulesen?

Mein Ansatz war nach einiger Suche:


Code:
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = test_db AND COLUMN_NAME = neue_spalte
Aber beim compilieren wird eine Fehlermeldung ausgegeben:
Code:
Exception-Klasse EDatabaseError mit Meldung 'Database file 'INFORMATION_SCHEMA' does not exist'.


Ändere ich das um in

Code:
SELECT DATA_TYPE FROM test_db WHERE COLUMN_NAME = neue_spalte
Gibt es eine andere Fehlermeldung:
Code:
Exception-Klasse EABSException mit Meldung 'Cannot find field DATA_TYPE - Native error: 10305'.

Gibt mir bitte jemand einen Tipp, wie ich als Anfänger in Sachen SQL das bewerkstelligen kann?



Ich glaube die Lösung gefunden zu haben:

Code:
   var
     feldtyp : TFieldType;
     feldtyp_string : String;
   begin
        Query.SQL.Text := 'SELECT * From ' + Table_Name + ' WHERE 1 = 0';
        Query.Open;
        feldtyp := Query.Fields[x].DataType;
        feldtyp_string := _Query.Fields[x].ToString;
   end;
Somit kann ich mit feldtyp oder feldtyp_string weiter arbeiten. x ist ein beliebiges Feld der Tabelle.




Es gibt ein neues Problem.

Die Abfrage führt bei einem ftAutoInc - Feld zu einer ftInteger Rückgabe.
Wie könnte man hier noch eine Unterscheidung der Felder herausfinden?
Mathias

Geändert von NoGAD (22. Mär 2020 um 10:33 Uhr)
  Mit Zitat antworten Zitat