dbExpress-Treiber und Framework-Unterstützung für SQL Anywhere 12
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.
Inhaltsverzeichnis
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.