dbExpress ドライバおよび dbExpress フレームワークによる SQL Anywhere 12 のサポート

提供: RAD Studio
移動先: 案内検索

Win32 プラットフォーム向けのデータベース アプリケーションの開発:インデックス への移動


RAD Studio では、Sybase iAnywhere の SQL Anywhere 12 をサポートしています。以下の機能が含まれています。

  • SQL Anywhere 12 でサポートされている新しいデータ型: TIMESTAMP WITH TIME ZONE
  • CHARNCHARNVARCHAR といった既存データ型の動作変更
  • 新しい接続オプション: 接続パラメータのホスト属性とポート属性

要件

  • 最新の 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 桁です。

既存データ型の動作変更

CHARNCHARNVARCHARVARCHAR の各データ型は、32768 文字長の値をサポートするようになりました。

文字長セマンティクスを用いる NCHARNVARCHARCHARVARCHAR の各データ型のクライアント文字セットで記述されるバイト長が 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 ZONETIMESTAMP の間の変換
  • TIMESTAMP WITH TIME ZONE データ型の別の記述形式のサポート
  • 空間データ用のデータ型と空間互換性機能のサポート

メモ

サーバー側の変更については、ベンダのオンライン サポートを参照してください。

関連項目