Hallo, Jimmy -
Standard SQL sieht vor:
Feldname
Feldattribut (also INT, FLOAT, TEXT, CHAR(nn), etc.)
Weitere Spezifikationen wie z.B. eine Beschreibung des Feldes, Standard-Überschrift für Spalten (z.B. in Browses) etc. sind immer eigene Implemtierungen des jeweiligen Servers.
Aus diesem Grund habe ich eine Tabelle syslayout, die ich als Data Dictionnary verwende:
Code: Alles auswählen
mysql> describe syslayout;
+----------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+----------+------+-----+---------+-------+
| slname | char(32) | NO | PRI | | |
| slsequence | int(11) | NO | PRI | 0 | |
| slfield | text | YES | | NULL | |
| slfielddef | char(16) | YES | | NULL | |
| slbrowseq | int(11) | YES | | NULL | |
| slbrowseheader | text | YES | | NULL | |
+----------------+----------+------+-----+---------+-------+
6 rows in set (0.03 sec)
Code: Alles auswählen
mysql> select * from syslayout where slname = 'XLateCP' order by slname, slsequence;
+---------+------------+------------------------------+------------+-----------+----------------+
| slname | slsequence | slfield | slfielddef | slbrowseq | slbrowseheader |
+---------+------------+------------------------------+------------+-----------+----------------+
| XLateCP | 10 | XLPrio | CHAR(1) | 10 | xlate prio |
| XLateCP | 20 | XLBase | INT | 20 | start values |
| XLateCP | 30 | XLUniCode | CHAR(9) | 30 | UniCode value |
| XLateCP | 40 | XLWestern | INT | 40 | Western value |
| XLateCP | 50 | XLCode | CHAR(1) | 50 | displayed as |
| XLateCP | 9000 | PRIMARY KEY (XLPrio, XLBase) | | 0 | |
+---------+------------+------------------------------+------------+-----------+----------------+
6 rows in set (0.00 sec)
Wobei das noch "Work in Progress" ist.
Wenn ich diese Tabelle anzeige, lese ich die syslayout und entnehme ihr, welche Felder im Browse angezeigt werden sollen, und wie die Spaltenüberschriften sein sollen.
Analog kann ich prüfen, ob der definierte Aufbau der vorhandenen entspricht, und gegebenenfalls ein ALTER TABLE ausführen.
Gruss,
Georg