Hallo Leute,
hab ein Problem: Ich weiß nicht wie ich eine Konstante definieren muss. Die Konstante soll einige Informationen über mehrere Tabellendefinitionen enthalten. Eine Tabellendefinition enthält mehrere Informationen über eine bestimmte Tabelle einer Datenbank. Damit ich diese Informationen verfünftig festlegen kann habe ich ein paar Typen definiert:
Als erstes ein Record welches Informationen über eine Tabelle enthält:
Quelltext
1: 2: 3: 4: 5: 6:
| Type tTableDef = Record Name: String; PrimaryKey: tTableColumnName; Columns: tTableColumns; End; |
Da jede Tabelle Spalten enthält und jede Spalte auch Eigenschaften besitzt ist der Typ tTableColumns wie folgt definiert:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Type tTableColumn = Record Name: tTableColumnName; Typ: tTableColumnTypeId; Length: Integer; Key, Nullable: Boolean; End;
tTableColumns = Array Of tTableColumn; |
Nun habe ich am anfang geschrieben das ich mehrere Tabellen beschreiben muss. Deshalb habe ich für jede Tabelle ein Element in einem Aufzählungstyp eingefügt:
Quelltext
1: 2: 3: 4: 5: 6:
| Type tTables = ( Table1, Table2, Table3 ); |
So und jetzt kommt das Problem. Ich möchte nun
eine Konstante definieren welche Informationen über alle Tabellen enthält. Ich habe es wie folgt probiert:
Quelltext
1: 2: 3: 4: 5: 6:
| Const cTableDefintions : Array [tTables] of tTableDef = ( (Name: 'Tabelle 1'; PrimaryKey: ''; Columns: ???), // Table1 (Name: 'Tabelle 2'; PrimaryKey: ''; Columns: ???), // Table2 (Name: 'Tabelle 3'; PrimaryKey: ''; Columns: ???) // Table3 ); |
Das Problem ist nun wie ich die Spaltendefinition mit angeben kann. Ich habe es schon so versucht:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Const cTable1Columns: Array [1..2] Of tTableColumn = ( (Name: 'Feld 1'), (Name: 'Feld 2') );
cTableDefintions : Array [tTables] of tTableDef = ( (Name: 'Tabelle 1'; PrimaryKey: ''; Columns: cTable1Columns), // Table1 (Name: 'Tabelle 2'; PrimaryKey: '' ), // Table2 (Name: 'Tabelle 3'; PrimaryKey: '') // Table3 ); |
Allerdings bekomme ich dann einen Fehler:
Compiler hat folgendes geschrieben: |
[Fehler] zzz.pas(54): Inkompatible Typen: 'Array' und 'tTableColumns' |
Ich hoffe Ihr habt mein Problem verstanden und könnt mir eventl. einen Hinweis geben.
Vielen Dank
Gruß
Tino