TurboDB VCL Komponenten Bibliothek

Eine Tabelle zur Laufzeit erzeugen

See also

Previous  Top  Next

Die CreateTable Methode der TTdbTable Komponente erstellt eine neue Datenbanktabelle zur Laufzeit. Die Tabellenstruktur wird über die FieldDefsTdb Eigenschaft der Tabelle festgelegt. Falls Sie eine komplett neue Tabelle erzeugen möchten, müssen Sie FieldDefsTdb erst leeren bevor Sie neue Felder hinzufügen.

TurboDB unterstützt auch den Standard Mechanismus basierend auf dem FieldDefs Eigenschaft von TDataSet. Während dies ein guter Weg ist um Kompatibilität zu gewährleisten, bietet FieldDefsTdb eine bessere Kontrolle über die spezielle Möglichkeiten und Feldtypen von TurboDB, die nicht von TDataSet Standard unterstützt werden.

Um FieldDefsTdb zu leeren,

Verwenden Sie FieldDefsTdb.Clear.

Um ein TdbFieldDef zu den FieldDefsTdb einer Tabelle hinzuzufügen,

1.Verwenden Sie FieldDefsTdb.Add,
2.Setzen Sie anschließend die Eigenschaften von TdbFieldDef, das von dieser Funktion zurückgegeben wird.

Um eine Datenbanktabelle zur Laufzeit zu erzeugen,

1.Bestimmen Sie die FieldDefsTdb Eigenschaft entsprechend der Spalten, über die die neue Tabelle verfügen soll,
2.Legen Sie den TableLevel der Tabelle fest,
3.Bestimmen Sie Verschlüsselungsmethode und Password, falls Sie Ihre Tabelle schützen wollen,
4.Setzen Sie die Eigenschaften DatabaseName und TableName
5.Rufen Sie die Methode CreateTable auf.

Anmerkung: Falls schon eine Tabelle mit diesem Namen existiert, wird diese nicht überschrieben sondern es erscheint eine Exception, die über den Misserfolg der Aktion informiert

Der folgende Programmausschnitt erzeugt einer Tabelle mit drei Spalten:

TdbTable2.Close;
TdbTable2.FieldDefsTdb.Clear;
TdbTable2.FieldDefsTdb.Add('Word', dtString);
TdbTable2.FieldDefsTdb.Add('Count', dtSmallInt);
with TdbTable2.FieldDefsTdb.Add('RecordId', dtAutoInc) do Specification := 'Word';
TdbTable2.TableName := 'index';
TdbTable2.TableLevel := 4;
TdbTable2.CreateTable;
TdbTable2.Open;

 

Um eine berechnete Spalte anzulegen

1.Bei Definition der Tabellenspalten mit TTdbFieldDef Objekten,  weisen Sie der Eigenschaft CalcExpression eine Berechnungsvorschrift zu.
2.Falls die Berechnung immer durchgeführt werden soll wenn sich die Daten eines Datensatzes ändern, ist die Eigenschaft  InternalCalcField auf True zu setzen. Falls die Berechnung nur für den Vorgabewert  der Spalte verwendet werden soll, ist InternalCalcField auf False zu setzen.