ColdFusion 10 Windows 64 bit OS 環境でMicrosoft Accessドライバを使った非公式な接続方法

ColdFusionはWindows 64bit OS 上で Microsoft Access データベースとの接続をサポートしていません。ColdFusion Administratorで"Microsoft Access ドライバ"を使ったデータソースの登録を行ってもエラーが発生して正常に登録することができません。また、日本では"Microsoft Access with Unicode"ドライバもよく利用されますが、ドライバの一覧に表示されず利用することができません。


※ColdFusion Administrator の「データソース」の設定で、Microsoft Accessドライバを使ったデータソースを作成しようとすると、
「Unable to update the NT registry. 変数 DRIVERPATH が未定義です。」のエラーが発生して、
正しく接続されません。

 

開発元のColdFusionブログで、公式にはサポートされていませんが、 Microsoft Accessへ接続を行う技術情報が投稿されていました。そのブログの内容をベースにこちらで確認した情報を加えて参考情報としてご紹介します。

 

(参考)

 

手順

  1. (Microsoft Office Access 2007 から追加となった .accdb ファイルを使用する場合のみ)
    Microsoft社のサイトの「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント」より 32 bit版のドライバーをダウンロードし、インストールを行います。
    • Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント
      http://www.microsoft.com/ja-jp/download/details.aspx?id=13255

      (※)重要:AccessDatabaseEngine_x64.exeまたは任意の64ビットのMS Officeアプリケーションが既にインストールされている場合は、AccessDatabaseEngine.exeはコマンドラインを開いて"/passive"引数を指定してインストールする必要があります。 
  2. ColdFusion Administrator の「データソース」画面を開きます。
  3. [データソース名] に任意のデータソース名を指定します(例:uri)
    [ドライバ] は、ドライバの一覧から「Microsoft Access」を選択します。
  4. [追加]ボタンを押します。「データとサービス > データソース > Microsoft Access」の画面に遷移します。
  5. 「データベースファイル」の入力欄右側の[サーバーのブラウズ]ボタンを押して、接続を行いたい.mdb または .accdbファイルを選択します。
  6. 「CF データソース名」と「データベースファイル」の内容に誤りがない事を確認して、[送信]ボタンを押します。
  7.  応答をしばらく待った後に「Unable to update the NT registry. 変数 DRIVERPATH が未定義です。」 のエラーが出力されますが、このエラーは無視して下さい。
    • Windows の ODBC の「システム DSN」に登録を試みますが、64bit用のデータソースの設定を行ってしまうため、データベースドライバの設定が含まれておらず、上記のエラーとなってしまいます。
  8. C:\Windows\SYSWOW64\odbcad32.exe を実行すると、32bit用の「ODBC データ ソース アドミニストレーター ツール」設定ダイアログが表示されます。
  9. [システム DSN]タグを選択して開き、「追加」を行います。
  10. 「セットアップするデータソースのドライバ」は、『Microsoft Access Driver (*.mdb, *.accdb)』を選択します。手順1の作業を行っていない場合は、『Microsoft Access Driver (*.mdb)』を選択します。
  11. 「データソース名」には、手順3で指定したデータソース名と“同じ名前”を指定します。
  12. 「データベース」の「選択」を押して、手順5と“同じ.mdb または .accdbファイル”を選択します。
  13. 「ODBC データ ソース アドミニストレーター ツール」の[システム DSN]に、データソースが登録されたことを確認してください。
  14. ColdFusion Administrator の「データソース」画面に戻ります。先ほどエラーが発生した[データソース名]が一覧に表示されていますので、そのデータソース左側の確認アイコン(3つあるアイコンの真ん中)を押します。ステータス欄に [OK] が表示されたら、接続が行えます。
  15. このデータソースを利用しているプログラム(<cfquery datasource="uri" ...)をブラウザから実行し、正しく動作しているかを確認してください。
  16. (以下の手順は、手順1~15を行って Microsoft Access と接続できた後の手順です)
    手順 7で誤って作成されている64bit用DSNのODBC設定を手動で削除します。削除はレジストリを操作しますので、万が一の問題に備えてレジストリのバックアップ等を行ってから作業する事をお勧めします。
    • Windows 64bit OS に 32bit版ColdFusion をインストールした場合は、以下の64bit用DSNには登録されていない模様ですので、以下の手順は必要ないようです。
  17. レジストリエディタを実行し、64bit用DSNに登録されているODBCエントリを削除します。
    1. key: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\{手順3.で指定したデータソース名}

      ※例、手順3で指定した「uri」というキーが存在しますので、それを削除します。
       
    2. value: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\{Data Source Name here}

      ※ODBC Data Sources に含まれている一覧から、「uri」という値を削除します。誤って別の名前を削除しないように気をつけて下さい。
  18. レジストリエディタを閉じます。
  19. 64bit用の「ODBC データ ソース アドミニストレーター ツール」設定ダイアログを表示します。C:\Windows\system32\odbcad32.exe をコマンドラインから実行します。64bit用の「ODBC データ ソース アドミニストレーター ツール」設定ダイアログが表示されますので、[システム DSN]タグを選択して開き、削除したデータソース名が一覧に表示されない事を確認します。
  20. 念のため、もう一度、手順 15と同様にこのデータソースを利用しているプログラム(<cfquery datasource="uri" ...)をブラウザから実行し、正しく動作しているかを確認してください。

 

 

 




記事公開日:2013年04月01日
最終更新日:2013年04月04日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.