Advantage Database Server への接続(FireDAC)

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

データベース接続(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 の種類を示す値の合計。これらの値は以下のとおりです。

  • ADS_REMOTE_SERVER = 2
  • ADS_LOCAL_SERVER = 1
  • ADS_AIS_SERVER = 4

数値の代わりに、以下のキーワードを使用することもできます。

  • Remote
  • Local
  • Internet

サーバーの種類を示すこれらのキーワードは、'|' で連結することができます。デフォルトは、以下のように、Server 値と Database 値によって異なります。

  • それらの値がドライブ文字の付いたローカル パスの場合は、"Local" が使用されます。
  • リモート パスがあれば、"Remote" と "Internet" が使用されます。
たとえば、ドライバではリモート サーバーやローカル サーバーを使用できるが Advantage Internet Server は使用できないようにする場合は、ServerTypes=3 を使用します(2+1=3)。
Protocol

Advantage Database Server への接続に使用する通信プロトコルを以下のいずれかで指定します。

  • UDP
  • IPX
  • TCPIP(デフォルト値)
  • TLS
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
  • Always
  • Never
Internet
TableType

使用するデータベース ファイルの種類を、以下のいずれかとして設定します。

  • ADT -- Advantage 独自の ADT/ADI/ADM ファイル
  • VFP -- FoxPro 互換の DBF/CDX/FPT ファイル
  • CDX
  • NTX

この設定はデータベース接続の場合には無視されます。

ADT
TablePassword この接続で扱うすべてのテーブルの暗号化パスワードを指定します。空き接続にのみ適用されます。

2 つの形式でパスワードを指定することができます:

  1. 各暗号化テーブルに対して、パスワードを指定します。
    • この場合、形式は次のとおりです:
      TablePassword=<table 1>=<password 1>[;... <table N>=<password N>]
    • テーブル名は SQL コマンドと TFDTable.TableName のテーブル名と一致する必要があることに注意してください。例:
      • TFDTable.TableName が "contacts.adt" の場合、TablePassword=contacts.adt=pwd
      • TFDTable.TableName が "CONTACTS" の場合、TablePassword=CONTACTS=pwd
  2. すべてのテーブルに対して、単一のパスワードを指定します。
    • この場合、形式は次のとおりです:
      TablePassword=<password>
    • この形式を使用すると、パスワードが、現在のカタログ内のすべてのテーブルに適用されます。
1) EMPLOYEES=pwd1;CUSTOMERS=pwd2

2) pwd

Locking

DBF テーブルを開く際に使用されるロック モードを指定します。有効な値は以下のとおりです。

  • Proprietary -- Advantage のパフォーマンスの高い内部ロック モードが使用されます。
  • Compatible -- DBF テーブルは、Advantage 以外のデータベース アプリケーションと書き込み可能モードで共有することができます。
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

関連項目