Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere の配備 » データベースとアプリケーションの配備 » クライアント・アプリケーションの配備 » ODBC クライアントの配備

 

接続情報の配備

ODBC のクライアント接続情報は、通常は ODBC データ・ソースとして配備されます。ODBC データ・ソースは、次のいずれかの方法で配備できます。

  • プログラムを使用   データ・ソースの記述をエンド・ユーザのレジストリまたは ODBC 初期化ファイルに追加します。

  • 手動   エンド・ユーザに手順を示して、各自のコンピュータに適切なデータ・ソースを作成できるようにします。

    Windows では、ODBC アドミニストレータを使用して [ユーザー DSN] タブまたは [システム DSN] タブでデータ・ソースを手動で作成します。SQL Anywhere ODBC ドライバは、設定を入力するための設定ウィンドウを表示します。データ・ソースの設定には、データベース・ファイルのロケーション、データベース・サーバの名前、起動パラメータとその他のオプションが含まれます。

    UNIX プラットフォームでは、SQL Anywhere の dbdsn ユーティリティを使用して手動でデータ・ソースを作成できます。データ・ソースの設定には、データベース・ファイルのロケーション、データベース・サーバの名前、起動パラメータとその他のオプションが含まれます。

この項では、どちらの方法であっても知る必要がある情報について説明します。

データ・ソースのタイプ (Windows)

データ・ソースには 3 種類あります。ユーザ・データ・ソース、システム・データ・ソース、ファイル・データ・ソースです。

ユーザ・データ・ソース定義は、レジストリの一部として保存され、システムに現在ログインしている特定のユーザ用の設定を含んでいます。これに対し、システム・データ・ソースは、すべてのユーザと Windows のサービスで使用でき、ユーザがシステムにログインしているかどうかに関係なく稼働します。MyApp というシステム・データ・ソースが正しく設定されている場合、ODBC 接続文字列に DSN=MyApp と指定することでどのユーザでもその ODBC 接続を使用することができます。

ファイル・データ・ソースはレジストリには保持されないで、特別なディレクトリに保持されます。ファイル・データ・ソースを使用するには、接続文字列に FileDSN 接続パラメータを指定する必要があります。

データ・ソースのレジストリ・エントリ (Windows)

各ユーザ・データ・ソースは、レジストリ・エントリによってシステムに識別されます。データ・ソース定義の正しいレジストリ・エントリを確実に作成する最も簡単な方法は、SQL Anywhere dbdsn ユーティリティを使用して作成することです。

このユーティリティを使用しない場合は、一連のレジストリ値を特定のレジストリ・キーに作成する必要があります。

ユーザ・データ・ソースの場合のキーを次に示します。

HKEY_CURRENT_USER\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            user-data-source-name

システム・データ・ソースの場合のキーを次に示します。

HKEY_LOCAL_MACHINE\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            system-data-source-name

キーには一連のレジストリ値が含まれ、それぞれが 1 つの接続パラメータに対応します。たとえば、32 ビットの Windows では、SQL Anywhere 11 Demo システムのデータ・ソース名 (DSN) に対応する SQL Anywhere 11 Demo キーには次の設定が含まれます。

値の名前 値のタイプ 値データ
Autostop 文字列 YES
DatabaseFile 文字列 samples-dir\demo.db
Description 文字列 SQL Anywhere 11 サンプル・データベース
Driver 文字列 install-dir\bin32\dbodbc11.dll
Password 文字列 sql
ServerName 文字列 demo11
StartLine 文字列 install-dir\bin32\dbeng11.exe
UserID 文字列 DBA
注意

配備されたアプリケーションの接続文字列には、ServerName パラメータを含めることをおすすめします。これにより、コンピュータで複数の SQL Anywhere データベース・サーバが実行されている場合に、アプリケーションが確実に正しいサーバに接続することができるため、タイミングに依存する接続エラーを防ぐことができます。

これらのエントリの install-dir は SQL Anywhere のインストール・ディレクトリです。64 ビットの Windows では、bin32bin64 になります。

さらに、データ・ソース名をレジストリ内のデータ・ソースのリストにも追加する必要があります。ユーザ・データ・ソースの場合は、次のキーを使用します。

HKEY_CURRENT_USER\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            ODBC Data Sources

システム・データ・ソースの場合は、次のキーを使用します。

HKEY_LOCAL_MACHINE\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            ODBC Data Sources

この値によって、各データ・ソースは ODBC ドライバと対応させられます。値の名前はデータ・ソース名で、値データは ODBC ドライバ名です。たとえば、SQL Anywhere によってインストールされたシステム・データ・ソースは、SQL Anywhere 11 Demo という名前で、次のような値を持ちます。

値の名前 値のタイプ 値データ
SQL Anywhere 11 Demo 文字列 SQL Anywhere 11
警告:ODBC の設定は簡単に表示されてしまう

ユーザ・データ・ソースの設定には、ユーザ ID とパスワードのように機密性のあるデータベース設定を含めることもできます。これらの設定は、レジストリにプレーン・テキストとして保存され、Windows レジストリ・エディタ regedit.exe または regedt32.exe を使用して表示できます。これらのエディタは、Microsoft からオペレーティング・システムとともに提供されています。パスワードを暗号化したり、ユーザが接続するときにパスワードの入力を要求するように選択することもできます。

必須およびオプションの接続パラメータ

ODBC 接続文字列内のデータ・ソース名は次のようにして調べることができます。

DSN=UserDataSourceName

Windows では、DSN パラメータを接続文字列に指定すると、Windows レジストリ内の現在のユーザ・データ・ソース定義が検索された後にシステム・データ・ソースが検索されます。ファイル・データ・ソースは、FileDSN が ODBC 接続文字列に指定された場合にだけ検索されます。

次の表は、データ・ソースが存在し、そのデータ・ソースが DSN パラメータや FileDSN パラメータとしてアプリケーションの接続文字列に含まれている場合の、ユーザと開発者に対する影響を示します。

データ・ソースの状態 接続文字列に指定する追加情報 ユーザが指定する情報
ODBC ドライバの名前とロケーション、データベース・ファイルまたはデータベース・サーバの名前、起動パラメータ、ユーザ ID とパスワードを含む 追加情報なし 追加情報なし
ODBC ドライバの名前とロケーション、データベース・ファイルまたはデータベース・サーバの名前、起動パラメータを含む 追加情報なし ユーザ ID とパスワード (DSN に指定がない場合)
ODBC ドライバの名前とロケーションのみを含む データベース・ファイル名 (DBF=) とデータベース・サーバ名 (ENG=) またはそのいずれか。オプションで、Userid (UID=) や PASSWORD (PWD=) などのその他の接続パラメータを含む場合もあります。 ユーザ ID とパスワード (DSN または ODBC 接続文字列に指定がない場合)
存在しない 使用する ODBC ドライバ名 (Driver=)、データベース名 (DBN=)、データベース・ファイル名 (DBF=) とデータベース・サーバ名 (ENG=) またはそのいずれか。オプションで、Userid (UID=) や PASSWORD (PWD=) などのその他の接続パラメータを含む場合もあります。 ユーザ ID とパスワード (ODBC 接続文字列に指定がない場合)

ODBC の接続と設定の詳細については、次を参照してください。