Advantage Database Server への接続(FireDAC)
データベース接続(FireDAC) への移動
このトピックでは、Advantage Database Server への接続方法を説明します。
目次
サポート対象バージョン
FireDAC ネイティブ ドライバでは、Advantage Database Server バージョン 8.0 以降をサポートしています。
クライアント ソフトウェア
Windows 版クライアント ソフトウェア
FireDAC では、Advantage Server への接続またはローカル接続の確立には、ACE32.DLL x86 または ACE64.DLL x64 クライアント ライブラリ(Advantage Client Engine API)が必要です。理想的には、バージョンはサーバーのバージョンと同じでなければなりません。バージョン 10.0 のクライアント ファイル一式は次のとおりです。
- ace32.dll
- adsloc32.dll
- aicu32.dll
- axcws32.dll
- adscollate.adm
- adscollate.adt
- ansi.chr
- extend.chr
- icudt40l.dat
- adslocal.cfg
Advantage Client Engine API はここからダウンロードできます。インストール フォルダには "Redistribute" フォルダが含まれており、その中には、必要な再配布可能ファイルがすべて格納されています。これらのファイルは以下の場所に配置できます。
- PATH 環境変数値に含まれているフォルダ
- アプリケーションの EXE ファイルのフォルダ
- その他の任意のフォルダ(この場合は FDDrivers.ini で以下のように指定します)
[ADS]
VendorLib=<folder>\ace32.dll
ADS クライアント ライブラリが正常にインストールされていない場合は、接続しようとすると、以下のような例外が発生します。
[FireDAC][Phys][ADS]-314. Cannot load vendor library [ACE32.dll]. The specified module could not be found. Make sure it is located in one of the PATH directories or in the application EXE directory
Linux 版クライアント ソフトウェア
Advantage Client Engine for Linux をダウンロードし、ダウンロードされたフォルダ内で次のコマンドを実行します。
tar -xavf aceapi-*.tar.*
cd aceapi-*
sudo ./setup.pl
ドライバのリンク
Advantage ドライバをリンクするには、以下のいずれかを行います。
- [ツール パレット]の[FireDAC Links]ページから、TFDPhysADSDriverLink コンポーネントをドロップします。
- uses 句に FireDAC.Phys.ADS ユニットを追加します。
接続定義パラメータ
ヒント: 接続定義パラメータへのアクセス方法についての詳細については、「接続の定義(FireDAC)」を参照してください。
DriverID=ADS
パラメータ | 説明 | 値の例 |
---|---|---|
ServerTypes |
接続を試みる Advantage Server の種類を示す値の合計。これらの値は以下のとおりです。
数値の代わりに、以下のキーワードを使用することもできます。
サーバーの種類を示すこれらのキーワードは、'|' で連結することができます。デフォルトは、以下のように、Server 値と Database 値によって異なります。
|
たとえば、ドライバではリモート サーバーやローカル サーバーを使用できるが Advantage Internet Server は使用できないようにする場合は、ServerTypes=3 を使用します(2+1=3)。 |
Protocol |
Advantage Database Server への接続に使用する通信プロトコルを以下のいずれかで指定します。
|
TCPIP |
Server | サーバー アドレスです。 | \\ADS |
Port | サーバー ポートです。 | 6262 |
Database | データ ファイルが存在するコンピュータとデータ ファイルのデフォルトの格納場所を指す完全修飾パスです。この完全修飾パスではドライブ文字が含まれているか、UNC が使用されている必要があります。Database には、Server 値と Port 値を含めてもかまいません。リモート サーバー タイプの場合、このパスでは UNC を使用するか、あるいは既存のネットワーク共有を参照する必要があります。
"空き接続" の場合は、データ ファイルが存在する場所の有効なパス名(たとえば x:\data など)でなければなりません。このパスは、指定されたディレクトリ内のすべてのテーブルを自動的に選択するのに使用されます。"データベース接続" の場合は、Advantage Data Dictionary ファイル名を含んだ有効なパス名(たとえば x:\database\mydictionary.add など)でなければなりません。 パスにはパス変数を含めることができます。 |
c:\ads\data
\\ADS:6262\DB |
Alias | データベース サーバーに接続する際に使用するエイリアスを指定します。指定されたエイリアスに関連付けられているファイル パスが、データベース ディレクトリとして使用されます。エイリアスに関連付けられているテーブル タイプが、この接続で使用されるデフォルトのテーブル タイプとして設定されます。Alias の詳細については、「Database Aliases and the ads.ini File」(データベース エイリアスと ads.ini ファイル)を参照。 | |
CharacterSet | テーブルを開く際に照合順序に使用される言語です(オプション)。 | ANSI |
Compress |
通信の圧縮オプションを指定します。有効な値は以下のとおりです。
|
Internet |
TableType |
使用するデータベース ファイルの種類を、以下のいずれかとして設定します。
この設定はデータベース接続の場合には無視されます。 |
ADT |
TablePassword | この接続で扱うすべてのテーブルの暗号化パスワードを指定します。空き接続にのみ適用されます。
2 つの形式でパスワードを指定することができます:
|
1) EMPLOYEES=pwd1;CUSTOMERS=pwd2
2) pwd |
Locking |
DBF テーブルを開く際に使用されるロック モードを指定します。有効な値は以下のとおりです。
|
Proprietary |
ADSAdvanced | ACE API の 1 つである AdsConnect101 の他の任意の接続パラメータ値を追加指定できます。 | EncryptDictionary=True;DDPassword=qwe |
使用例
ローカル ADS データベースを "空き接続" モードで開く場合:
DriverID=ADS Database=c:\ads\data
Visual FoxPro テーブルが格納されているローカル ADS データベースを "空き接続" モードで開く場合:
DriverID=ADS Database=c:\ads\data TableType=VFP
リモートのデータ ディクショナリ ベース接続を開く場合:
DriverID=ADS ServerTypes=Remote Protocol=TCPIP Database=\\DA\ADS_DB\addemo.add User_Name=adssys Password=a
エイリアスを使ってローカル ADS データベースを "空き接続" モードで開く場合:
DriverID=ADS Alias=MyConn
ads.ini ファイルの内容:
[Databases] MyConn=c:\data;N
既知の問題
- 悲観的ロックは、Advantage の制限ではまだサポートされていません。具体的には、ナビゲーショナル ロックと SQL ロック、互換性の問題があります。
トラブルシューティング
エラー「Error 6060: Advantage Database Server not available on specified server」が発生した場合、ポート番号(デフォルトでは 6262)を、Server
パラメータ値に追加してみてください。例: Server=example.com:6262