Sybase SQL Anywhere への接続(FireDAC)

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

データベース接続(FireDAC) への移動

このトピックでは、Sybase SQL Anywhere への接続方法を説明します。

サポート対象バージョン

FireDAC ネイティブ ドライバでは、Sybase SQL Anywhere バージョン 5 以降をサポートしています。

Windows 版クライアント ソフトウェア

FireDAC を使用するには、以下の Sybase SQL Anywhere x86 または x64 ODBC ドライバのいずれかをワークステーションにインストールする必要があります。

  • "Adaptive Server Anywhere" ODBC ドライバ(バージョン 5 ~ 7 に接続する場合)
  • "SQL Anywhere N" ODBC ドライバ。N は DBMS のメジャー バージョン番号(たとえば 8、9、10 など)。

推奨されるドライバは "SQL Anywhere N" です。 ODBC ドライバは Sybase SQL Anywhere SDK に含まれています。 また、ここからダウンロードすることもできます。

SQL Anywhere ODBC ドライバが正しくインストールされていない場合は、接続を試みたときに以下の例外が発生します。


[FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.

アプリケーションで TFDASABackup などの SQL Anywhere サービス コンポーネントを使用している場合は、ワークステーションに以下の DLL をインストールする必要があります。

  • DBTOOL<N>.DLL
  • DBLIB<N>.DLL

N はお使いの SQL Anywhere のバージョンです。

macOS クライアント ソフトウェア

FireDAC を使用するには、以下が必要です。

  • UnixODBClibodbc.dylib)x86 ODBC ドライバ マネージャ ライブラリ。
  • SQL Anywhere (libdbodbcNN.dylib) x86 ODBC ドライバ。

macOS 版の SQL Anywhere クライアント ソフトウェアはここからダウンロードすることができます。 インストール後、以下を行います。

  • 以下を /usr/local/etc/odbcinst.ini に追加します:
[SQL Anywhere 16]
Description=SQL Anywhere v 16
Driver=/Applications/SQLAnywhere12/System/lib32/libdbodbc16_r.dylib
Setup=/Applications/SQLAnywhere12/System/lib32/libdbodbc16_r.dylib
UsageCount=1
  • libodbcinst.dylib and libodbcinst.dylib.1 リンクを /Applications/SQLAnywhere12/System/lib32 フォルダから削除します(UnixODBC libodbcinst.dylib と競合するため)。これは、Sybase 開発チームが推奨している処置です。
  • /Applications/SQLAnywhere12/System/bin32/sa_config.sh を実行します。

Linux クライアント ソフトウェア

FireDAC を使用するには、以下が必要です。

  • UnixODBClibodbc.so)x64 ODBC ドライバ マネージャ ライブラリ
  • SQL AnywherelibdbodbcNN.so)x64 ODBC ドライバ(さらに

Linux に SQL Anywhere ODBC をインストールするには、次のコマンドを使用します:


wget http://d5d4ifzqzkhwt.cloudfront.net/sqla16client/sqla16_client_linux_x86x64.tar.gz
tar -zxvf sqla16_client_linux_x86x64.tar.gz
cd client1600
sudo ./setup -nogui -I_accept_the_license_agreement -silent
sudo rm /opt/sqlanywhere16/lib64/libodbcinst.so
sudo rm /opt/sqlanywhere16/lib64/libodbcinst.so.1
/opt/sqlanywhere16/bin64/sa_config.sh
echo [SQL Anywhere 16] > asa.driver.template
echo Description=SQL Anywhere ODBC Driver v 16 >> asa.driver.template
echo Driver=/opt/sqlanywhere16/lib64/libdbodbc16_r.so >> asa.driver.template
echo Setup=/opt/sqlanywhere16/lib64/libdbodbc16_r.so >> asa.driver.template
sudo odbcinst -i -d -f asa.driver.template
cd ..
メモ: Linux ディストリビューションや UnixODBC の構成により、上記コマンドは少しずつ異なります。これらのコマンドは、Ubuntu Linux およびデフォルトの UnixODBC セットアップでテストされています。

ドライバのリンク

ドライバをリンクするには、以下のいずれかを行います。

  • [ツール パレット]の[FireDAC Links]ページから TFDPhysASADriverLink コンポーネントをドロップします。
  • uses 句に FireDAC.Phys.ASA ユニットを追加します。

接続定義パラメータ

SQL Anywhere DBMS に接続するには、ほとんどのアプリケーションで、DriverIDServerDatabaseOSAuthentUser_NamePassword を指定する必要があります(詳細については、「接続の定義(FireDAC)」参照)。

DriverID=ASA

パラメータ 説明 値の例
Server 接続先となる稼働中のデータベース サーバーの名前を指定します。 ASASrv
Database 既に稼働中のデータベースに接続する場合に接続先となる読み込み済みのデータベースを指定します。
OSAuthent

認証モードを以下のように制御します。

  • Yes -- 統合ログインが試みられます。
  • No -- DBMS ログインが行われます。これがデフォルト値です。
No
User_Name OSAuthent=No の場合にデータベースへのログインに使用されるユーザー ID を指定します。 dba
Password OSAuthent=No の場合にデータベースへのログインに使用されるユーザー パスワードを指定します。

'{' と '}' を含むパスワードはサポートされていません。

sql
DatabaseFile まだ稼働していないデータベースを起動したときに読み込んで接続するデータベース ファイルを指定します。既に稼働しているデータベースに接続する場合は、Database パラメータを使用します。
Compress

ネットワーク トラフィックの圧縮を以下のように制御します。

  • Yes -- 接続に対して圧縮を有効にします。
  • No -- 圧縮を無効にします。これがデフォルト値です。
Yes
Encrypt クライアント アプリケーションとサーバーの間で送信されるパケットを、トランスポート層セキュリティか単純な暗号化を使って暗号化します。値は { NONE | SIMPLE | TLS( TLS_TYPE=<暗号>; [ FIPS={ Y | N }; ] TRUSTED_CERTIFICATES=<公開証明書> ) } という構文に従います。
  • tls(tls_type=rsa;fips=n;trusted_certificates=rsaserver.crt)
  • simple
LoginTimeout 接続の確立中にアプリケーションがタイムアウトするまでの時間(秒単位)を制御します(0 の場合は無限に待つことを指定します)。 30
ApplicationName 管理者が特定のクライアント接続の確立元をデータベース サーバーから特定する際に役に立ちます。確立元の文字列は SELECT CONNECTION_PROPERTY('AppInfo') という SQL 文を使って取得できます。 AllBooks
ODBCAdvanced その他の任意の ODBC 接続パラメータ値を追加で指定することができます。デフォルト値は "CommLinks=ShMem,TCP" です。CommLinks が指定されている場合はサーバーが自動起動しないことに注意してください。 AutoStart=Yes;CharSet=Windows-1251
MetaDefCatalog デフォルト データベース名。カタログ名が MetaDefCatalog と同じ場合、設計時コードではオブジェクト名からカタログ名が省略されます。 addemo
MetaDefSchema デフォルト スキーマ名です。スキーマ名が MetaDefSchema と同じ場合、設計時コードでは、オブジェクト名からそのスキーマ名が省略されます。 dba

使用例

ローカル サーバーを自動起動し、データベース ファイル "C:\sybase\addemo_asa10.db" を開く場合:


DriverID=ASA
ODBCAdvanced=AutoStart=Yes
DatabaseFile=C:\sybase\addemo_asa10.db
User_Name=dba
Password=sql
MetaDefSchema=dba
  • デフォルトのローカル サーバーに接続する場合:


DriverID=ASA
User_Name=dba
Password=sql
MetaDefSchema=dba
  • サーバー インスタンス ASASrv で稼働しているデータベース ADDemo に接続する場合:


DriverID=ASA
Server=ASASrv
Database=ADDemo
User_Name=dba
Password=sql
MetaDefSchema=dba
  • 別のネットワーク内のサーバー インスタンス ASASrv で稼働しているデータベース ADDemo に接続する場合:


DriverID=ASA
ODBCAdvanced=CommLinks=tcpip(host=227.12.66.1)
Server=ASASrv
Database=ADDemo
User_Name=dba
Password=sql
MetaDefSchema=dba

関連項目