TurboDB VCL/CLX Komponenten Bibliothek
Unicode Zeichenketten speichern
Previous  Top  Next


Die TurboDB-Engine erlaubt Unicode in WideString Spalten und in WideMemos. Bei der Verwendung dieser Datentypen in einer VCL/CLX Anwendung gilt es allerdings einige Fallen zu beachten. Die VCL verwendet in beinahe allen Funktionen und Komponenten AnsiStrings und konvertiert Unicode Zeichenketten automatisch und ohne Warnung in diesen Typ.
CLX basiert prinzipiell auf Unicode, die Komponenten für den Datenbankzugriff weisen allerdings dieselbe Schnittstelle auf, wie Ihre VCL Pendants. Datenbank-Kontrollelemente verarbeiten also wiederum nur AnsiStrings. Es gibt also keinen Weg Unicode mit VCL/CLX Daten-Kontrollelementen in Ihre Datenbank einzugeben oder anzuschauen.

Das können Sie mit Unicode Daten aus Ihrer TurboDB-Datenbank in Ihrer VCL/CLX-Anwendung machen:
-Anzeige und Eingabe von Zeichenketten in normale Kontrollelemente wie zum Beispiel TEdit. Diese Kontrollelemente arbeiten auch mit Unicode korrekt, Sie müssen aber Ihre eigene Logik für Updates und Postings implementieren, da normale Kontrollelemente über keinen DataSource Link verfügen:
-Interne Verwendung von Unicode Daten. Sie können WideStrings aus einem DataSet lesen und zurückschreiben.

Falls Sie über TdbDataSet auf Unicode Daten zugreifen, verwenden Sie nicht die TField.AsString sondern die Eigenschaft Value.

Query Parameter (z.B. Einträge in der TTdbQuery.Params Kollektion) können nur über TParam.Value gesetzt werden.

Falls Sie mir Unicode Memos arbeiten möchten, werden Sie schnell merken, dass VCL/CLX keinen passenden Datentypen für diese Art von Tabellen-Spalte bietet. Unicode Memos werden durch den Feldtyp ftBlob und der Feldklasse TTdbBlobField repräsentiert, die eine Eigenschaft AsWideString bietet.

Die Eigenschaft Filter in VCL/CLX Komponenten ist ebenso wie die SQL Eigenschaft vom Datentyp AnsiString und können daher auch nicht für die Suche in Unicode Zeichenketten verwendet werden. Die TurboDB Datenbank-Komponenten verfügen daher über die zusätzlichen Eigenschaften FilterW und SQLW vom Type WideString.