![]() |
Datenbank: mySQL • Version: 5.7.29 - MySQL Community Server (GPL) • Zugriff über: Zeos 7.2.6-stable
Auslesen von Feldname, Feldtypen, deren Größe und default werte einer Tabelle
Hallo,
in Delphi xe4, mit libmysql.dll für die ZConnection zeige ich mir alle Tabellen einer Datenbank in einem DBGrid mit folgendem SQL Statement an
Delphi-Quellcode:
Die Felder lasse ich mir in einem 2. DBGrid anzeigen
Z_TABELLEN.SQL.Clear;
Z_TABELLEN.SQL.append('show tables'); Z_TABELLEN.Open;
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; Somit bekomme ich Feldnamen und feldtyp (varchar, int date..) in meiner 2. DBGrid ist es möglich - auch die Größe (varchar = 200) oder (int = 6) und die default-werte darzustellen? Vielen Dank für Infos Erich |
AW: Auslesen von Feldname, Feldtypen, deren Größe und default werte einer Tabelle
|
AW: Auslesen von Feldname, Feldtypen, deren Größe und default werte einer Tabelle
In dem man sich die Definiton von
![]() |
AW: Auslesen von Feldname, Feldtypen, deren Größe und default werte einer Tabelle
Joar, Views ala INFORMATION_SCHEMA.COLUMNS gibt es in vielen SQL-DBMS.
Und schau mal, ob die Zeos-Komonenten das nicht auch direkt liefern. Die TField's haben den Delphi-Typen (DataType) für die Felder drin und z.B. bei Devart gibt es in den Query-Komponenten passende Informationen zum aktuell geladenen ResultSet. > Quell-Tabelle, Quell-Field (nach einem AS) sowie die datenbankseitigenen Typen (eventuell hat Zeos sowas auch drin) |
AW: Auslesen von Feldname, Feldtypen, deren Größe und default werte einer Tabelle
Das
![]() Bei einem
Delphi-Quellcode:
wäre es eigentlich naheliegend, es mal mit einem
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;
Delphi-Quellcode:
zu versuchen und nach Begutachtung des Ergebnisses den * durch die tätsächlich benötigten Spalten zu ersetzen.
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; Und da TZQuery und TZTable von TDataSet abgeleitet sind, hat man hier natürlich auch mindestens auf alle Spalteninformationen, die TDataSet bietet, Zugriff. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz