dbxdrivers.ini は [[dbExpress]] のドライバ名とそのドライバを利用するためのファイルのパスや標準的なオプションなどが記載されたファイルです。

Apollo を [[msiパッケージ]]でインストールした場合には、次の場所にインストールされるはずです。

 C:/Program Files/Apollo/bin/dbxdrivers.ini

* 場合によっては(Delphi の Pro 版以上をインストールしてある場合などには)、次のディレクトリにも入っているかも知れない。しかし、Apollo が使うのは $(Apollo)/bin の方のはず。

 C:/Program Files/Common Files/Borland Shared/DBExpress/dbxdrivers.ini

! ファイルの中身

中身をざっと見ておきます。

!! [Installed Drivers] セクション

 [Installed Drivers]
 DB2=1
 Interbase=1
 MYSQL=1
 Oracle=1
 PostgreSQL=1

最初のセクションは、インストールされているドライバの名前を記述します。「ドライバの名前」というのは次以降のセクションのセクション名のことです。

!! ドライバ名のセクション

 [DB2]
 GetDriverFunc=getSQLDriverDB2
 LibraryName=DBEXPDB2.DLL
 VendorLib=db2cli.dll
 BlobSize=-1
 Database=DBNAME
 ErrorResourceFile=
 LocaleCode=0000
 Password=password
 DB2 TransIsolation=ReadCommited
 User_Name=user
 
 [Interbase]
 GetDriverFunc=getSQLDriverINTERBASE
 LibraryName=dbexpint.dll
 VendorLib=GDS32.DLL
 BlobSize=-1
 CommitRetain=False
 Database=database.gdb
 ErrorResourceFile=
 LocaleCode=0000
 Password=masterkey
 RoleName=RoleName
 ServerCharSet=
 SQLDialect=1
 Interbase TransIsolation=ReadCommited
 User_Name=sysdba
 WaitOnLocks=True

2番目のセクションは [[DB2]] 用のドライバの詳細、3番目のセクションは[[InterBase]]ドライバの詳細です。

!!! GetDriverFunc

 GetDriverFunc=getSQLDriverDB2
 GetDriverFunc=getSQLDriverINTERBASE

これらは(よくわかりませんが)おそらく、ドライバで export された関数名と思われます。

!!! LibraryName

 LibraryName=DBEXPDB2.DLL
 LibraryName=dbexpint.dll

[[dbexpint.dll]]は $(Apollo)/bin (c:\Program Files\Apollo\bin)にインストールされます。これらのドライバは、データベース提供者(Vender)が提供するクライアントライブラリと dbExpress とを接続するためのライブラリのようです。

 C:\Program Files\Apollo\bin>dir db*.dll
 2001/07/13  06:00           105,472 dbexpdb2.dll
 2002/02/22  14:02           119,296 dbexpint.dll
 2001/07/13  06:00            91,136 dbexpmys.dll
 2002/03/18  06:02            92,160 dbexpmysql.dll
 2002/03/18  06:02           165,376 dbexpora.dll
                5 個のファイル             573,440 バイト
 C:\Program Files\Apollo\bin>

!!! VendorLib

 VendorLib=db2cli.dll
 VendorLib=GDS32.DLL
 VendorLib=LIBMYSQL.dll
 VendorLib=OCI.DLL
 VendorLib=libpq.dll

これらは C:\WINDOWS\system32 ディレクトリか、それぞれのクライアントライブラリのパッケージが指定した場所にインストールされていると思います。

[[db2cli.dll]] は [[DB2]] の、[[gds32.dll]] は [[InterBase]] の、[[libmySQL.dll]] は [[MySQL]] の、[[OCI.DLL]] は [[Oracle]] の、[[libpq.dll]] は [[PostgreSQL]] のクライアントライブラリと呼ばれるモノのようです。

たけ(tk)のマシンを調べたところ [[gds32.dll]] と [[libpq.dll]] は C:\WINDOWS\system32\ に、[[libmySQL.dll]]は c:\mysql\bin に入っていました。

 C:\Program Files\Common Files\Borland Shared\DBExpress>dir /s c:\libpq.dll
  c:\WINDOWS\system32 のディレクトリ
 1999/06/29  06:32            92,160 libpq.dll
 C:\Program Files\Common Files\Borland Shared\DBExpress>

データベース関係ではこれらのドライバのバージョン違いや相性の問題がけっこう出てきます。問題が生じたらドライバ名とファイルの所在地、タイムスタンプなどを調べて問題がないかどうかを調べる必要が出てくるかもしれません。

!!! その他

 Database=DBNAME
 Database=database.gdb

「database.gdb」というのはダミーです。書き方の見本です。

一般に InterBase のデータベースのファイルの拡張子は(昔は)「.gdb」とすることが奨励されていました(その後 Windows が同じ名前の拡張子を別の目的で使いはじめたので、最近では Firebirdでは「.fdb」、InterBase では「.idb」が推奨されているようです)。

あとは、デフォルトの設定であったり、見本であったりします。

----

ご意見・ご質問{{comment}}