Entwickler-Ecke

Datenbanken - tDataSet erkennen ob Stringfeld char oder varchar ist


Klabautermann - Mi 28.12.11 17:20
Titel: tDataSet erkennen ob Stringfeld char oder varchar ist
Hallo,

ich habe eine Funktion, welche tDataSets aus beliebigen Quellen bekommt und Informationen über dieses Ausgeben soll. Unter anderen auch den Feldtypen. Jetzt habe ich aber das Problem, dass sowohl Char- als auch Varchar-Felder den tDataSet Feldtypen ftString zugewiesen bekommen. Ich würde aber gerne unterscheiden, ob dieses Feld in der darunterliegenden Datenbank ein char oder ein varchar Feld war. Gibt es eine Möglichkeit dies zu tun?

Gruß
Klabautermann


Singlepin - Do 29.12.11 15:56

Hallo Klabautermann,

bei MySQL würde ich den Feldtyp so ermitteln:


SQL-Anweisung
1:
SHOW COLUMNS FROM `DB`.`Tabelle` LIKE "Feldname";                    


Aber es gibt sicher noch ander Wege, SHOW CREATE TABLE ...


baka0815 - Do 29.12.11 18:16

Da nur die Datasets weitergereicht werden, ist ein Zugriff auf die Meta-Daten per SQL sicherlich kein Weg - vor allem, da dies bei jeder DB anders ist.


Klabautermann - Fr 30.12.11 09:45

Hallo,

leider hat user profile iconbaka0815 recht. Die entsprechende Funktion weiß nichts von den dahinter stehenden Datenbanken und soll es auch nicht wissen, außerdem würde ich sie ungern durch zusätzliche Querys ausbremsen. Ich hatte gehöft, das ich irgendwo in den Innereien von tDataset ein indikator befindet, den ich bisher übersehen habe.

Dennoch danke für den Versuch,
Klabautermann