TurboDB Engine Dokumentation

Kollationen

Previous  Top  Next

Kollationen definieren auf welche Weise Zeichenketten sortiert und miteinander verglichen werden. TurboDB verwendet für Kollationen ein ähnliches Schema zur Namensgebung wie Microsoft SQL Server. Der Name einer Kollation besteht aus dem Namen eines Windows Gebietschemas plus zwei oder vier zusätzlichen Buchstaben, die anzeigen, wie Groß-Kleinschreibung und diakritische Zeichen behandelt werden sollen.

Die Bedeutung dieser vier Zeichen ist:

AS: Diakritische Zeichen (Akzente) unterscheiden
AI: Diakritische Zeichen (Akzente) nicht unterscheiden
CS: Klein- und Großbuchstaben unterscheiden
CI: Klein- und Großbuchstaben nicht unterscheiden

Falls beides angegeben wird, muss die Spezifikation der Groß-Kleinschreibung vor der Angabe der diakritischen Zeichen stehen. Es ist auch möglich keine Spezifikation anzugeben. In diesem Fall werden diakritische Zeichen unterschieden, Groß-Kleinschreibung dagegen nicht.

Neben den Namen der Windows Gebietsschemas dient die spezielle Kollation TurboDB zur Sortierung wie Sie in TurboDB 5 und kleiner angewendet wurde.  Demzufolge ist es nicht möglich die as/ai/cs/ci Spezifikationen an den Kollations-Namen TurboDB anzuhängen. Die Namen der Kollationen selbst sind case insensitiv.

Hier einige Beispiele für gültige Namen von TurboDB Kollationen:

German (Diakritische Zeichen unterscheiden, Groß-Kleinschreibung nicht unterscheiden)
GERMAN (wie oben)
English_ai (Diakritische Zeichen nicht unterscheiden, Groß-Kleinschreibung nicht unterscheiden)
Spanish_ci_as (Diakritische Zeichen unterscheiden, Groß-Kleinschreibung nicht unterscheiden)
Russian_cs (Diakritische Zeichen unterscheiden, Groß-Kleinschreibung unterscheiden)
Russian_CS (wie oben)
TurboDB (Diakritische Zeichen unterscheiden, Groß-Kleinschreibung nicht unterscheiden)

Hier einige Beispiele für ungültige Namen::

Collation1_ai (Collation1 ist keine Windows Gebietsschema)
Spanish_as_ci (Falsche Reihenfolge der zusätzlichen Spezifikationen)
Spanish_ca (Ungültige Spezifikation)
TurboDB_cs (Die spezielle Kollation TurboDB darf keine zusätzlichen Spezifikationen haben)

Tipp: Verwenden Sie den Tabelleneditor des TurboDB Viewer um eine Liste der auf Ihrem System verfügbaren Kollationen anzuzeigen..

Kollationen können auf mehrere Arten zugewiesen und ausgelesen werden:

TurboDB Viewer zeigt Kollationen an und ermöglicht die Auswahl, wenn eine Tabelle erzeugt oder restrukturiert wird.
TurboSQL unterstützt sie Klausel COLLATE für Spaltentypen.
In der VCL Bibliotek verfügt die Klasse TTdbFieldDef über eine Eigenschaft namens Specification, in der für String Typen der Name der Kollation steht.
Die .NET Provider unterstützen Kollationen über das entsprechende ADO.NET Interface.

Kompatibilität

Kollationen werden sowohl von TurboDB für Win32 v6 aös auch von TurboDB für .NET v3 unterstützt. Aussschließlich Tabellen mit Level 6 oder höher erlauben die Definition von Kollationen auf Spaltenebene. Tabellen mit niedrigerer Versionen erlauben lediglich die Definition von Kollationen auf Tabellenebene, wobei der Dreibuchstaben ISO Code für die Sprache verwendet wird. Ältere TurboDB Versionen verwendeten optional Sprachtreiber,die nicht mehr unterstützt werden. Hinweise zur Migration dieser Tabellen finden Sie im Kapitel Upgrade auf TurboDB  Win32  v6.

Da String-Vergleiche jetzt zu 100% konsistent in Filtern, SQL, TurboPL und Indexen sind, sind Vergleiche in älteren TurboDB Tabellen jetzt case insensitive. Daher ist der Vergleich MyStringColumn = 'TestString' wahr für einen MyStringColumn-Wert 'teststring' in TurboDB 6, wohingegen er falsch war mit TurboDB 5  und früher. Falls case sensitive Vergleiche erwünscht sind, muss eine andere Kollation für die Tabelle oder Spalte definiert werden..

Siehe auch

CREATE TABLE Statement