dbExpress-Treiber und Framework-Unterstützung für SQL Anywhere 12

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankanwendungen für die Win32-Plattform entwickeln - Index


RAD Studio unterstützt SQL Anywhere 12 von Sybase iAnywhere. Leistungsmerkmale:

  • Neuer von SQL Anywhere 12 unterstützter Datentyp: TIMESTAMP WITH TIME ZONE.
  • Änderungen des Verhaltens für vorhandene Datentypen, wie CHAR, NCHAR und NVARCHAR.
  • Neue Verbindungsoptionen: die Verbindungsparameter host und port.

Voraussetzungen

  • Neuesten Client der SQL Anywhere Version 12.0.0
  • Neue Plattformunterstützung: x64

Neue Datentypen

Ein neuer Datentyp wird für die neue SQL Anywhere Version 12 unterstützt. Der neue Datentyp TIMESTAMP WITH TIME ZONE speichert einen Zeitpunkt mit einer Zeitzone. TIMESTAMP WITH TIME ZONE enthält das Jahr, den Monat, den Tag, die Stunde, die Minute, die Sekunde, den Sekundenbruchteil und die Anzahl der Minuten vor oder nach der Coordinated Universal Time (UTC, koordinierte Weltzeit). Der Sekundenbruchteil wird mit bis zu sechs Dezimalstellen gespeichert. Zum Speichern eines TIMESTAMP WITH TIME ZONE-Wertes sind 10 Byte erforderlich.

Das akzeptierte Format lautet 2009-07-15 08:00:00 -08:00. Dabei gilt:

Komponente Anzahl der Ziffern

Jahr

1 bis 4 Ziffern

Monat

1 oder 2 Ziffern

Tag

1 oder 2 Ziffern

Stunde

1 oder 2 Ziffern

Minuten

1 oder 2 Ziffern

Sekunden

1 oder 2 Ziffern

Sekundenbruchteil

1 bis 6 Ziffern

Stunde der Zeitzone

1 oder 2 Ziffern

Minuten der Zeitzone

1 oder 2 Ziffern

Die maximal akzeptierte Genauigkeit beträgt 34.

Verhaltensänderungen bei vorhandenen Datentypen

Die Datentypen CHAR, NCHAR, NVARCHAR und VARCHAR unterstützen jetzt Werte mit 32768 Zeichen.

Wenn die im Client-Zeichensatz beschriebene Byte-Länge für den Datentyp NCHAR, NVARCHAR, CHAR oder VARCHAR mit der Zeichenlängensemantik mehr als 32767 betragen würde, dann werden diese Typen als LONG NVARCHAR- oder LONG VARCHAR-Datentypen beschrieben.

Vorhandene Datentypen

Die folgende Tabelle enthält die Datentypen und deren SQL- und DBX-Entsprechungen, die von der Version 12 des iAnywhere-Treibers unterstützt werden:

ASA-Feldtyp SQL-Typ DBX-Typ

fldASACHAR

SQL_CHAR

fldZSTRING

fldASAVARCHAR

fldASAVARCHAR

fldZSTRING

fldASADECIMAL

SQL_DECIMAL

fldBCD

fldASANUMERIC

SQL_NUMERIC

fldBCD

fldASASMALLINT

SQL_SMALLINT

fldINT16

fldASAINTEGER

SQL_INTEGER

fldINT32

fldASAREAL

SQL_REAL

fldSINGLE

fldASAFLOAT

SQL_FLOAT

fldFLOAT

fldASADOUBLE

SQL_DOUBLE

fldFLOAT

fldASALONGVARCHAR

SQL_LONGVARCHAR

fldBLOB

fldASABIT

SQL_BIT

fldBOOL

fldASALONGVARBIT

SQL_BIT

fldBOOL

fldASAVARBIT

SQL_BIT

fldBOOL

fldASATINYINT

SQL_TINYINT

fldUINT8

fldASABIGINT

SQL_BIGINT

fldINT64

fldASABINARY

SQL_BINARY

fldVARBYTES

fldASAVARBINARY

SQL_VARBINARY

fldVARBYTES

fldASALONGVARBINARY

SQL_LONGVARBINARY

fldBLOB

fldASAIMAGE

SQL_LONGVARBINARY

fldBLOB

fldASALONGBINARY

SQL_LONGVARBINARY

fldBLOB

fldASAUNIQUEIDENTIFIER

SQL_GUID

fldZSTRING

fldASADATE

SQL_DATE

fldDATE

fldASATIME

fldASATIME

fldTIME

fldASATIMESTAMP

SQL_TIMESTAMP

fldTIMESTAMP

fldASADATETIME

SQL_DATETIME

fldTIMESTAMP

fldASASMALLDATETIME

SQL_DATETIME

fldTIMESTAMP

fldASAMONEY

SQL_NUMERIC

fldBCD

fldASASMALLMONEY

SQL_NUMERIC

fldBCD

fldASALONGNVARCHAR

SQL_WLONGVARCHAR

fldBLOB

fldASANCHAR

SQL_WCHAR

fldWIDESTRING

fldASANTEXT

SQL_WLONGVARCHAR

fldBLOB

fldASANVARCHAR

SQL_WVARCHAR

fldWIDESTRING

fldASATEXT

SQL_LONGVARCHAR

fldBLOB

fldASAUNIQUEIDENTIFIERSTR

SQL_CHAR

fldZSTRING

fldASAXML

SQL_LONGVARCHAR

fldBLOB

fldASAWCHAR

SQL_WCHAR

fldWIDESTRING

fldASAWVARCHAR

SQL_WVARCHAR

fldWIDESTRING

fldASAWLONGVARCHAR

SQL_WLONGVARCHAR

fldBLOB

fldASANULL

SQL_TYPE_NULL

fldUNKNOWN

fldASAUNKNOWN

SQL_UNKNOWN_TYPE

fldUNKNOWN

fldASADATETIMEOFFSET

SQL_VARCHAR

fldTIMESTAMPOFFSET

Neue Verbindungsoptionen

Für SQL Anywhere Version 12 stehen zwei neue Verbindungsoptionen zur Verfügung. Mit diesen Optionen werden die Attribute host und port der Verbindung angegeben.

Der neue Verbindungsparameter Host übernimmt einen Hostnamen (oder eine IP-Adresse) und eine optionale Portnummer, die dem Client die Position des Datenbankservers mitteilt. Bei Verwendung des Parameters Host werden keine UDP-Pakete gesendet, sofern zur eindeutigen Identifizierung des Servers genügend Informationen angegeben sind (ein Hostname und eine Portnummer). Wenn weder eine Portnummer noch ein Datenbankservername angegeben ist, wird als Portnummer 2638 angenommen, und der Client führt keinen Broadcast durch. Verfügt der Client jedoch über einen Hostnamen und einen Datenbankservernamen, aber über keine Portnummer, sendet er zur Ermittlung der Portnummer ein UDP-Paket an den Port 2683 auf dem angegebenen Host.

Wenn ein Datenbankserver beispielsweise testserver heißt und auf einem Computer mit Namen testcomputer an der Standard-Portnummer ausgeführt wird, kann zur Verbindung mit dem Datenbankserver der folgende Verbindungsstring verwendet werden:

UID=DBA;PWD=sql;Server=testserver;Host=testcomputer:2683

Wenn die Portnummer unbekannt ist, dann können Sie einfach mit dem folgenden Verbindungsstring eine Verbindung zu dem Datenbankserver herstellen:

UID=DBA;PWD=sql;Server=testserver;Host=testcomputer

Zukünftige Implementierungen

Auf Anforderung von Clients können die folgenden Funktionen implementiert werden:

  • Konvertierung von TIMESTAMP WITH TIME ZONE in TIMESTAMP und umgekehrt.
  • Unterstützung für unterschiedliche Formate des Datentyps TIMESTAMP WITH TIME ZONE.
  • Datentypen für räumliche (Spatial-)Daten und Unterstützung von räumlichen (Spatial-)Kompatibilitätsfunktionen.

Hinweise

Informationen über serverseitige Änderungen finden Sie im Online-Support des jeweiligen Herstellers.

Siehe auch