PSQL v10 あるいは PSQL v11 をインストールしている環境に PSQL v12 のアップグレードインストールを行うと、他社データベースの ODBC システム DSN 設定のドライバー情報(”Driver”= および “TranslationDLL”= )が全て PSQL のドライバーに書き換わります。
回避策は、PSQL v10 あるいは PSQL v11 をアンインストールしてから PSQL v12 のインストールを行ってください。
PSQL v10 あるいは PSQL v11 のアンインストールを行わずに PSQL v12 のインストールを行ってしまった場合、他社データベースの ODBC システム DSN を再設定してください。
再設定ができない場合は、PSQL v12 のインストールログから必要な情報を取得して、次の手順でレジストリを修復してください。
インストールログは、%tmp% フォルダーに次のファイル名で作成されます。
PSQL_v12_[Client|Server|WGE]_[x86|x64]_Install.log
- インストールログをメモ帳等で開き、「Converting driver from」を検索してください。
- 次のような行が見つかります。
<32bit DSN の場合>
Action: DSNConversion32 Description: Converting 32-bit HKLM DSN: SOFTWARE¥ODBC¥ODBC.INI¥text Action: ConvertDSN32 Description: Entering function.
Action: ConvertDSN32 Description: Converting driver from C:¥Windows¥system32¥odbcjt32.dll to C:¥Program Files (x86)¥Actian¥PSQL¥bin¥w3odbcci.dll
※3 行目にある from が w3odbcci.dll の場合、PSQL の DSN ですから、そのままにして手順 g に移動します。
他の DLL の場合、手順 c から手順 e を実行します。
<64bit DSN の場合>
Action: DSNConversion64 Description: Converting 64-bit HKLM DSN: SOFTWARE¥ODBC¥ODBC.INI¥Test64bitSQLServerDSN Action: ConvertDSN64 Description: Entering function.
Action: ConvertDSN64 Description: Converting driver from C:¥Windows¥system32¥SQLSRV32.dll to C:¥Program Files¥Actian¥PSQL¥bin¥odbcci64.dll
※3 行目にある from が odbcci64.dll の場合、PSQL の DSN ですから、そのままにして手順 g に移動します。
他の DLL の場合、手順 c から手順 e を実行します。 - レジストリエディタ(regedit.exe)を起動します。
- 手順 b の 1 行目に記述されているレジストリエントリを検索します。
32bit か 64bit かの判断は、1 行目に記述されている Converting の後の記述を参照します。
<32bit OS で 32bit DSN の場合>
SOFTWARE¥ODBC¥ODBC.INI¥dsn 名
※インストールログの記録のまま(前述の例では、SOFTWARE¥ODBC¥ODBC.INI¥text)
<64bit OS で 32bit DSN の場合>
SOFTWARE¥Wow6432Node¥ODBC¥ODBC.INI¥dsn 名
※インストールログに記録されている「SOFTWARE¥」を「SOFTWARE¥Wow6432Node¥」に置き換えます。
(前述の例では、SOFTWARE¥Wow6432Node¥ODBC¥ODBC.INI¥text)
<64bit DSN の場合>
SOFTWARE¥ODBC¥ODBC.INI¥dsn 名
※インストールログの記録のまま(前述の例では、SOFTWARE¥ODBC¥ODBC.INI¥Test64bitSQLServerDSN) - 手順 b の 3 行目の “Driver”= に記述されているドライバーファイル名を、from ~ to の間に記録されているファイル名に書き戻します。
<変更前>
[HKEY_LOCAL_MACHINE¥SOFTWARE¥Wow6432Node¥ODBC¥ODBC.INI¥text]
“Driver”=”C:¥¥Windows¥¥system32¥¥odbcjt32.dll”
“DefaultDir”=”C:¥¥TEST¥¥ODBC”
“DriverId”=dword:0000001b
“FIL”=”text;”
“SafeTransactions”=dword:00000000
“UID”=””
<変更後>
[HKEY_LOCAL_MACHINE¥SOFTWARE¥Wow6432Node¥ODBC¥ODBC.INI¥text]
“Driver”=”C:¥¥Program Files (x86)¥¥Actian¥¥PSQL¥¥bin¥¥w3odbcci.dll”
“DefaultDir”=”C:¥¥TEST¥¥ODBC”
“DriverId”=dword:0000001b
“FIL”=”text;”
“SafeTransactions”=dword:00000000
“UID”=”” - 手順 b で「Converting translator」行が存在する場合、レジストリの “TranslationDLL”= に記述されているトランスレーター DLL の名称も、from ~ to の間に記録されているファイル名に書き戻します。
- 「Converting driver from」が見つからなくなるまで、手順 a から手順 f を繰り返します。
Windows 環境の全て(Server、Workgroup、Client、Vx Server)の製品が対象です。
この問題は、次の PSQL v12 SP1 のサービスパックで修正されています。