【保存版】2013年度発売全パチスロアプリ一覧(iPhone,iPad)

【SQLServer】32bitOfficeが入っている環境に64bitACEOLEDBプロバイダを導入できる?

SQLServerでOPENROWSETやリンクサーバーを使う際に必要な
プロバイダのひとつであるJet用のOLE DBプロバイダは、
64bit版SQLServerでは使用できません。
なぜなら、Jet用のOLE DBプロバイダは32bit版でしか
提供されていないためです。
代替プロバイダとしては、64bitにも対応した、
ACE OLE DBプロバイダを使用する必要があります。

ただし、このACE OLE DBプロバイダですが、SQLServerの
インストールには含まれていません。
別途下記コンポーネントをインストールする必要があります。
Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント

(64bitOLEDBに関する参考資料)
64 ビット環境での各種データ アクセス | サポート エンジニアからのアドバイス

また、もうひとつの問題点として、
このACE OLE DBプロバイダですが、officeのAccessをベースと
しているため、officeと競合します。

例えば、OSが64bitで、SQLServerも64bit。
すでにofficeの32bitが導入されている。
といった環境の場合、officeの32bitが入っているため、
officeが32bitと64bitのサイドバイサイドインストールが
できないことと同理由で
ACE OLE DBプロバイダの64bit版が導入できません。
(インストーラーでのチェックでエラーとなります。)

海外のサイトではこれを無理やり導入する方法が紹介されていました。
Why can't 32 and 64 bit Access Database Engine (ACE/OLEDB Dataproviders) coexist?
Here's a workaround for installing the 64-bit version of the Microsoft Access Database Engine 2010 redistributable on a system with a 32-bit MS Office version installed:

Check the 64-bit registry key "HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Office¥14.0¥Common¥FilesPaths" before installing the 64-bit version of the Microsoft Access Database Engine 2010 redistributable.
If it does not contain the "mso.dll" registry value, then you will need to rename or delete the value after installing the 64-bit version of the Microsoft Access Database Engine 2010 redistributable on a system with a 32-bit version of MS Office installed.
Use the "/passive" command line parameter to install the redistributable, e.g. "C:¥directory path¥AccessDatabaseEngine_x64.exe" /passive
Delete or rename the "mso.dll" registry value, which contains the path to the 64-bit version of MSO.DLL (and should not be used by 32-bit MS Office versions).
Now you can start a 32-bit MS Office application without the "re-configuring" issue.

Note that the "mso.dll" registry value will already be present if a 64-bit version of MS Office is installed. In this case the value should not be deleted or renamed.

概要としては、
AccessDatabaseEngine_X64.exeを導入する前に、
64bitのレジストHKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Office¥14.0¥Common¥FilesPathsに
mso.dllが登録されていないことを確認後、
AccessDatabaseEngine_X64.exeを強制インストール。
その後、再度、HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Office¥14.0¥Common¥FilesPaths
を確認。mso.dllが登録されているので、これを削除かリネーム。
(補足)
64bitのmso.dllのレジストリがあると、office201032bitを起動時、
64bitのdllを参照しようとしてしまい、officeの再設定が実行されることや、
起動エラーが発生する場合があります。

まとめると、ポイントとしては、二つ。
1) / passiveスイッチでAccessDatabaseEngine_X64.exeを強制インストール。
2) レジストリを変更し、64bit版のmso.dllを使用しないようにする

上記、マイクロソフトの推奨手順ではありませんので、
完全に自己責任の世界ですが、成功報告もたくさんありました。
本番環境では使えませんが、デモ環境用で導入するのはケースとしては
ありかと思います。

(2013/12/15 追記)
実は確認時に参照先ファイルの権限に問題がありました。
権限を付与すると正常に動作するようになりました。
私の環境では本エントリの手順で問題なく動作したことを
ご報告します。
また、新エントリもどうぞ。

【SQLServer】(自己責任で)32bitOffice環境でMicrosoft.ACE.OLEDB.12.0プロバイダを導入する方法。


で、私が以下の環境で試したところ、プロバイダはインストール
されたのですが、Microsoft.ACE.OLEDB.12.0の使用時に初期化に失敗しましたと
エラーが発生しました。
(環境)
・Windows7 64bit
・SQLServer 64bit
・office2010 32bit
インストールしたコンポーネント
Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント64bit用
AccessDatabaseEngine_X64.exe

(エラーメッセージ)
リンク サーバー "EXCEL" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" のデータ ソース オブジェクトを初期化できません。 (Microsoft SQL Server、エラー: 7303)

もちろん、このあたりの設定はしているんですけどね。
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO

素直にSQLServer32ビットを導入してほうがよいのでしょうか。。。
SQL Server で WOW64 その 1

[Google PR]

Twitterはじめました。プラプラ | Twitter

<< 【Access】(応用編)インターネット経由ODBC接続で、レンサバのMySQLへ接続する。
【iPad】10月22日のAppleイベント。新型iPadminiも発表予定らしいよ。 >>

[関連エントリ 最新5]

[Google PR]


[最新エントリ 5]

>>トップページ
人気カテゴリ:AccessTips SQLServer CakePHP iPad
過去ログ(全記事一覧)

コメント
コメントする(お気軽にどうぞ)









この記事のトラックバックURL
トラックバック
カテゴリー
プロフィール
お問い合わせ
Powered by NINJA TOOLS
links
recent comment
  • 【Access】vbaでhmacが正しく計算できた!!
    まさ (06/01)
  • 【Access】AccessReportMailメール送信時のポートを25から587へ
    わら (05/31)
  • 【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。
    sazi (09/08)
  • 【あまっちゃお】Amazon商品検索「あまっちゃお」プロジェクト始動。Ver00-06-00 β
    カメちゃん (07/31)
  • 【Access】あれ?DoCmd.RunCommand acCmdSaveRecordの内部仕様が変わった?
    花姉 (03/17)
  • 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
    亀 (02/06)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    管理人 (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    あ (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    K (11/13)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    管理人 (08/04)
recent trackback
  • 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
    awgs Foundry (10/29)
  • 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
    XMLがキライ。 (04/09)
  • Vistaから、LinkStation(NAS)にアクセスできません。
    そのほかいろいろ (09/06)