Das
information schema ist ein
ANSI-Standard, der aber nicht von allen Datenbanken unterstützt wird.
MySQL unterstützt ihn.
Bei einem
Delphi-Quellcode:
tabellenname := Z_TABELLEN.FieldByName('tables_in_'+MainModule.UniMainModule.ZConnection1.Database).AsString;
Z_FELDER.SQL.Clear;
Z_FELDER.SQL.append('SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = "'+MainModule.UniMainModule.ZConnection1.Database+'" AND TABLE_NAME = "' + tabellenname + '"');
Z_FELDER.Open;
wäre es eigentlich naheliegend, es mal mit einem
Delphi-Quellcode:
tabellenname := Z_TABELLEN.FieldByName('tables_in_'+MainModule.UniMainModule.ZConnection1.Database).AsString;
Z_FELDER.SQL.Clear;
Z_FELDER.SQL.append('SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = "'+MainModule.UniMainModule.ZConnection1.Database+'" AND TABLE_NAME = "' + tabellenname + '"');
Z_FELDER.Open;
zu versuchen und nach Begutachtung des Ergebnisses den * durch die tätsächlich benötigten Spalten zu ersetzen.
Und da TZQuery und TZTable von TDataSet abgeleitet sind, hat man hier natürlich auch mindestens auf alle Spalteninformationen, die TDataSet bietet, Zugriff.