ColdFusionカフェテリア
SAMURAIZ
| ↑一覧へ戻る |
ColdFusion実験室
色々なデータベースドライバを試すA

UCanAccess ドライバを使ってMicrosoft Access DBに接続する

作成日: 2016年3月
最終更新日: 2016年3月

■このページ(ColdFusion 実験室)で紹介する内容について

ColdFusion 実験室で公開している情報は、ColdFusionの標準の機能では無いため動作の保証外(未サポート)となります。下記の事項も含めてそれらを予めご認識頂いた上で、参考にされるかどうかをご判断下さい。

■注意事項

ColdFusionには、MX以降、データソースの登録に手動で追加したJDBCドライバを使用する機能があり、この記事の中で実際にそれを試していますが、メーカーの Adobe Systems社は、ColdFusionに同梱されたドライバ以外を使用したデータベース処理はサポート対象としていません。

独自に追加したJDBCドライバを使って発生した問題や、サードパーティー製のドライバ自体を利用するかどうかの判断に関しては、自己責任にてお願い申し上げます。

■Microsoft Accessの非サポート化と UCanAccess について

これまでもMicrosoft Access DBへのサポートはColdFusion 32bit版で限定されたバージョン(例:サポートされたAccessよりmdb形式で保存したファイルを「Microsoft Access with Unicode」で接続)のみ行われておりましたが、ColdFusion 2016よりMicrosoft Access自体が非サポートとなりました。
(ただし引き続き 32bit版ColdFusionにはMicrosoft Access with Unicodeドライバが同梱されています)

また、MX(6)時代に、5以前で使用していたJava接続を持たないDBへの接続を(サポート外ですが)行うために、JDBC→ODBC接続を行うための中継サービスを利用した「Microsoft Access」や「ODBC Socket」が用意されていました。こちらも引き続きColdFusion2016に同梱されてはいますが、ColdFusion2016の実行環境がJava8になったことで英語以外の処理が行えなくなり、DBのデータに日本語が含まれている場合などの処理が行えなくなりました。
(もともと古い時代のドライバであり、ODBC側のドライバは独自の接続、つまり同梱外のドライバを利用するのでサポート外となるため、今後の対応は未定です)

そのため、特に64bit版 ColdFusion 2016で、日本語を含む Microsoft Accessへの接続が行えない事から、代替えの手段として UCanAccess ドライバを使用して接続を試してみます。

UCanAccessドライバは、Javaベースのオープンソースのドライバで、下記のサイトで公開されています。
http://ucanaccess.sourceforge.net/site.html

Java 8で JDBC-ODBCブリッジが廃止された事もあり、代替え手段としてUCanAccessドライバを使用する情報が複数のWebサイトに掲載されているため、それらも参考になると思います。いくつか紹介します。
http://mail2.nara-edu.ac.jp/~asait/java/j2se_2/j2se_2.htm
http://sunjava.seesaa.net/article/433524780.html
http://chaos-fractal.blogspot.jp/2014/07/java-access-jdbc-odbc.html
http://totomo.net/11101-ucanaccess.htm

@データベースドライバをダウンロード

UCanAccessのページの画面上部の「Download UCanAccess X.X.X(執筆時点では3.0.4)」ボタンを押し、SourceForgeに掲載されているダウンロード一覧から「UCanAccess-X.X.X-bin.zip (執筆時点では3.0.4)」を選択ししてダウンロードします。


ダウンロードしたzipファイルを解凍すると、UCanAccessのJarファイルと、libフォルダ内にUCanAccessが使用する4つのJarファイルが置かれています。

AドライバをColdFusion内に配置

解凍したzipファイルの中から「ucanaccess-X.X.X.jar」ファイルとlibフォルダ内の4つのjarファイルをColdFusionが自動で読み込むディレクトリ内に配置します。
今回は、[cf2016_root]/cfusion/wwwroot/WEB-INF/libにファイルを置きました。このフォルダは、このディレクトリは、任意のJava JARファイルの自動ロードに使われます。
参考1:http://help.adobe.com/ja_JP/ColdFusion/10.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7ea1.html
参考2:http://www.trycf.com/tutorials/tutorial/Extending-Coldfusion--Java

※今後のメンテナンスを考え、どのjarファイルを置いたかを控えておく事をお勧めします。将来、配置したJarファイルの(セキュリティ問題の修正等を含む)更新があった時に、新しいバージョンのファイルに入れ替える等が判断し易くなります。

BColdFusionを再起動する

配置したJARファイルを読み込むためにColdFusion(ColdFusion 2016 Application Serverサービス)を再起動します。

CColdFusion Administratorにログインし、データソースを登録する

今回は、下記の場所に置いたtest.accdbに対してデータソースを登録してみます。

ColdFusion Administratorの[データとサービス] > 『データソース』画面を開き、新規のデータソースの追加を行います。任意の「データソース名」を入力し、「ドライバの選択」には、『その他』を選んで、『追加』ボタンを押して下さい。


次に、データソースの設定画面で、AccessDBに接続するための情報を入力します。設定の詳細に関しては、UCanAccessサイトにアクセスし、上部の[Getting Started]タブを選択して参照下さい。
http://ucanaccess.sourceforge.net/site.html

■設定例

D設定完了

『送信』ボタンを押すと、データソース一覧画面に戻るとともに、指定した情報をもとにデータベースへの接続が試みられます。正しく接続が行えると、登録した名前のデータソースの「ステータス」に『OK』が表示されます。


もし、正しく接続が行えなかった場合は、エラーに関する情報が掲載されますので、登録したデータベース名を選択し、エラー内容をもとに、設定の変更を行って下さい。下記は、AccessDBファイルが指定した場所に見つからなかった場合のエラー例となります。

E最後に

設定を完了した後は、データベース処理を行い、動作に変化が無いか、エラー等が発生しないかを確認し、場合によってはプログラムやSQLの見直しを検討して下さい。
上記の「■Microsoft Accessの非サポート化と UCanAccess について」で紹介したリンク先にも情報が載っています(更新に関する情報ですが、最新のドライバでは解消される可能性もあります)。また、同じく、上記Cで紹介した[Getting Started]ページには、さまざまなパラメーターに関する情報が掲載されていますので、動作が異なる・うまくいかない場合も、パラメーターを変更することで、解消する場合もあります。使用される際は、それら情報を有効に活用して下さい。
こちらではあまりAccessDBを利用する機会が無いため、今回のテストでは簡単なSELECTを試した程度ですが、今後も何か新しい情報が見つかった際は、このページで追記していきたいと思います。

ColdFusionの各種情報の配信


最新情報
■2017/3/27
ColdFusion 2016 対応
インストール セットアップ情報
CFサーバーのインストール
CFビルダーのインストール

■2016/9/20
『ColdFusion 2016 リリース
Enterprise Edition 活用資料』
記事一覧

■2016/3/30
『ColdFusion 実験室』
実験4、実験5

■2015/8/10 〜
『ColdFusion クリニック』
記事一覧(随時更新中)

■2015/4/8
『JasperReportsによる帳票出力』
2. JasperReportsによる帳票出力【後編】

■2015/3/12
アップクロス株式会社
西元 貞昭様
『JasperReportsによる帳票出力』
1. JasperReportsによる帳票出力【前編】


■2015/2/25
『ColdFusionでエクセルを使いこなそう!』
4. 【上級】ColdFusionのエクセル機能を利用したPDF帳票の紹介

ColdFusionトレーニング


ColdFusionユーザーグループ
ColdFusionユーザーグループ
Copyright 2012 Samuraiz Corporation. All Rights Reserved.