ColdFusion 10 64bit Windows OS上で非公式にMicrosoft Access with Unicode ドライバを使ってAccess MDBに接続する参考方法

 

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

以前のバージョン(ColdFusion 8、9)では、64bit OS上でも32bit版ColdFusion をインストールすれば、"Microsoft Access with Unicode"ドライバを使ってMicrosoft Access(.mdb)と接続する事ができていました。なぜならば、"Microsoft Access with Unicode"ドライバは、32bitのライブラリ(DLL)で作成されたJDBC Type 2ドライバだからです。

ただし、32bit版ColdFusion10の場合、64bit OS上にColdFusion10をインストールしても、そのライブラリファイルが欠落しているため、"Microsoft Access with Unicode"ドライバを使った接続を行う事ができません。

対応としては

  1. サーバーを32bit Windows OS に変更し、ColdFusion 10 をインストールして、"Microsoft Access with Unicode"ドライバを使ってMicrosoft Access と接続する
  2. 下記の FAQ 記事を参考に、"Microsoft Access"ドライバを使って Microsoft Access と接続する
  3. 以下の手順に従い、32bit Windows OSがインストールされている別のPCにColdFusion 10をインストールし、欠落したファイルをコピーする。
    64bit OS上に32bit版ColdFusion10 をインストールして、その欠落したファイルを貼り付けし、"Microsoft Access with Unicode"ドライバを使ってMicrosoft Access(.mdb)と接続する。

 

※注意:前述の通り、ColdFusionはWindows 64bit OS 上で Microsoft Access データベースとの接続をサポートしていませんので、2 と 3 は非公式(非サポート)な接続方法になります。

 

[準備]

  • 作業の中で、「32bit Windows OSにインストールしたColdFusion10」からライブラリファイルをコピーする必要があります。32bit Windows OSがインストールされているPCをご準備下さい。

 

[作業]

  1. (32bit Windows OSがインストールされている別のPCでの作業)
    ColdFusion 10をインストールして下さい。
    • 体験版・デベロッパー版のインストールで問題ありません
    • サブコンポーネントはインストールする必要はありません
    • ColdFusion10を起動する必要はありません
  2. エクスプローラーを開き、[cf10_root]/cfusion/libフォルダに遷移します。そのフォルダ内のizmjniado.dllファイルをUSB等(64bit OSの環境にコピーできるデバイス)にコピーします。
  3. (ここから、64bit OS上にインストールされた32bit 版ColdFusion10の作業)
    ColdFusion 10 Application Serverのサービスを停止します。
  4. エクスプローラーを開き、[cf10_root]/cfusion/libフォルダに遷移します。手順2で取得したizmjniado.dllファイルを配置します。
  5. ColdFusion 10 Application Serverのサービスを開始します。
  6. ColdFusion Administrator にログインし、データソースの設定で"Microsoft Access with Unicode"が選択可能であることを確認します。
  7. 通常と同じ方法で、Microsoft Accessファイル(.mdb)を選択して、データソースを登録して下さい。
  8. ただし、この段階では、エラーが発生します。なぜなら、作成された接続エントリーに余分な char code が挿入されるためです。



    ・neo-datasource.xmlを確認すると、作成したデータソースの url に余分な char code が多数書かれていることが分かります。
  9. ColdFusion 10 Application Serverのサービスを停止します。
  10. エクスプローラーで、手順4と同じ[cf10_root]/cfusion/libフォルダに移動します。
  11. neo-datasource.xmlファイルをバックアップします。
  12. neo-datasource.xmlファイルをメモ帳やテキストエディタで開きます。jdbc:izmado:Provider で検索します。
  13. 余分な char code を全て削除します。
    • 注意点
      • 途中で改行を入れない
      • char code を削除した後の Data と Source の間にはスペースを挿入する。
        (○: Data Source、×: DataSource)
      •  (変更前: 実際には1行で記載されています)
        • <var name='url'><string>jdbc:izmado:Provider=Microsoft.Jet.OLEDB.4.0;Data<char code='0a'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/>Source=C:/db/uriage.mdb;IzmJdbcEsc=yes;IzmReleaseOnClose= no<char code='0a'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/><char code='09'/></string></var>
      • (変更後: 実際には1行で記載されています。Data と Source の間にはスペースが挿入されています)
        • <var name='url'><string>jdbc:izmado:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/db/uriage.mdb;IzmJdbcEsc=yes;IzmReleaseOnClose= no</string></var>
  14. neo-datasource.xmlファイルを保存します。
  15. ColdFusion 10 Application Serverのサービスを起動します。
  16. ColdFusion Administrator にログインし、データソース画面に戻ります。手順7で作成した[データソース名]が一覧に表示されています。そのデータソースの左側に置かれている確認アイコン(3つあるアイコンの真ん中)を押します。ステータス欄に [OK] が表示されたら、接続が行えます。
    • このデータソースを利用するプログラム(<cfquery datasource="uriage" ...)をブラウザから実行し、正しく動作しているかを確認してください。

     

     

     


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


    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.