dbExpress ドライバおよび dbExpress フレームワークによる SQL Anywhere 12 のサポート
Win32 プラットフォーム向けのデータベース アプリケーションの開発:インデックス への移動
RAD Studio では、Sybase iAnywhere の SQL Anywhere 12 をサポートしています。以下の機能が含まれています。
- SQL Anywhere 12 でサポートされている新しいデータ型: TIMESTAMP WITH TIME ZONE
- CHAR、NCHAR、NVARCHAR といった既存データ型の動作変更
- 新しい接続オプション: 接続パラメータのホスト属性とポート属性
要件
- 最新の SQL Anywhere 12.0.0 クライアント
- 新しいプラットフォームのサポート: x64
新しいデータ型
新しい SQL Anywhere 12 に適合するように、新しいデータ型がサポートされています。この新しいデータ型 TIMESTAMP WITH TIME ZONE には、タイムゾーン オフセットの付いた日時が格納されます。TIMESTAMP WITH TIME ZONE に格納される情報は、年、月、日、時、分、秒、小数秒、協定世界時(UTC)とのずれ(±時間:分)です。小数秒は小数点以下 6 桁まで格納されます。TIMESTAMP WITH TIME ZONE 値を表現するには、10 バイトの記憶域が必要です。
使用可能な形式は 2009-07-15 08:00:00 -08:00
です。各構成要素は以下のとおりです。
構成要素 | 桁数 |
---|---|
年 |
1 ~ 4 桁 |
月 |
1 ~ 2 桁 |
日 |
1 ~ 2 桁 |
時 |
1 ~ 2 桁 |
分 |
1 ~ 2 桁 |
秒 |
1 ~ 2 桁 |
小数秒 |
1 ~ 6 桁 |
タイムゾーン オフセット(時間) |
1 ~ 2 桁 |
タイムゾーン オフセット(分) |
1 ~ 2 桁 |
最大許容精度は 34 桁です。
既存データ型の動作変更
CHAR、NCHAR、NVARCHAR、VARCHAR の各データ型は、32768 文字長の値をサポートするようになりました。
文字長セマンティクスを用いる NCHAR、NVARCHAR、CHAR、VARCHAR の各データ型のクライアント文字セットで記述されるバイト長が 32767 を超えるようなら、これらの型は LONG NVARCHAR または LONG VARCHAR データ型として記述されます。
既存のデータ型
iAnywhere ドライバのバージョン 12 でサポートされているデータ型と、それらに対応する SQL データ型および DBX データ型の一覧を、以下の表に示します。
ASA フィールド型 | SQL データ型 | DBX データ型 |
---|---|---|
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 |
新しい接続オプション
SQL Anywhere 12 では、2 つの新しい接続オプションが使用可能です。これらは、接続のホスト属性とポート属性を指定するのに使用されます。
新しい接続パラメータ Host
には、ホスト名(または IP アドレス)を指定できるほか、データベース サーバーの場所をクライアントに知らせるためのポート番号も必要に応じて指定できます。Host
パラメータを使用する場合、サーバーを一意に識別できるだけの情報(ホスト名とポート番号)が与えられれば、UDP パケットは送信されません。ポート番号もデータベース サーバー名も指定されなければ、ポート番号は 2638 と見なされ、クライアントはブロードキャストを実行しません。ただし、ホスト名とデータベース サーバー名はわかっているがポート番号が不明な場合、クライアントは、指定されたホストのポート 2683 に UDP パケットを送信して、ポート番号を特定します。
たとえば、データベース サーバーが testserver という名前で testcomputer というコンピュータのデフォルト ポート番号で稼働している場合は、以下の接続文字列を使用して、このデータベース サーバーに接続できます。
UID=DBA;PWD=sql;Server=testserver;Host=testcomputer:2683
ポート番号が不明な場合は、以下の接続文字列を使用するだけで、データベース サーバーに接続できます。
UID=DBA;PWD=sql;Server=testserver;Host=testcomputer
補足
クライアントの要求に応じて、以下の機能を実装できます。
- TIMESTAMP WITH TIME ZONE と TIMESTAMP の間の変換
- TIMESTAMP WITH TIME ZONE データ型の別の記述形式のサポート
- 空間データ用のデータ型と空間互換性機能のサポート
メモ
サーバー側の変更については、ベンダのオンライン サポートを参照してください。