SQL Server 2012 Express LocalDBへマイクロソフトAccess(accdb)から接続してみた。
マイクロソフトAccess2013以降、Access ADPファイルが使えなくなるという事で、代替策を考えていました。基本WEBベースに移行するのが色々な意味で汎用性がってGOOD。一方・・・。
下調べしていた過程で知ったのが、SQL Server 2012 Express LocalDBの存在。互換性の問題もあって、今のところSQLServer2008R2で本運用していますが、このLocalDBの仕組みには興味があります。結論から言うと、基本スタンドアロン & テスト運用目的くらいしか使い道がなさそう。
しかし!Dellのvenue8 Proを入手して状況は一変。こやつにデータベースを仕込んで色々できそう。
Windows8.1 Tabletで使うデータベースにはどれが良いか。
普通にAccessランタイムを入れてAccess一本でやれば事足りるんですけどね。でも、Accessって壊れるという印象があるし、かといってCompactエディションは制約が多い。SQL Server Expressでは、インストールが大変、その後の管理も面倒、インストール容量も多い。ただでさえストレージ容量が貧弱なタブレットにインストールするには気が引けます。
その点、LocalDBはまあ手ごろなサイズ。サービスとしてバックグラウンドで動くこともない。スタンドアロンで使うにはもってこいです。最小構成でどこまで出来るか、テスト(遊びともいう)を兼ねて構築してみることにしました。
前置きが長くなりましたが、手順です。使用した機材は・・・
- 開発環境:SONY VaioF (Win7 sp1 Pro)
- 本番環境:DELL Venue8 Pro (Win 8.1)
本番とは言いましても、あくまでテスト用ですが・・・。
開発環境の構築
1:開発環境にソフトをインストール
- VisualStudio Professional
- 2012Access2010
※VisualStudio Professional2012のインストール時、SSMS ExpressとLocalDBもインストールします。
2:開発環境のSQLServerManagementStudio(SSMS)にてデータベース作成
①サーバーへ接続
- 接続先はデータベースエンジン。
- データベース名に「(localdb)\v11.0」を手入力。
- windows認証にて接続
②データベースを作成
- データベースの新規作成ウィザードを立ち上げ。
- 任意の場所にデータベースファイルとログファイルを作成。
- 作ったデータベースにテーブル等を作成。
※デフォルトのパスに作成しようとするとエラーになります。どうやらバグらしい。
mdfファイル,logファイルのインストールパスを、MyDocument等に指定して作成します。
③ODBCデータソースアドミニストレーターを立ち上げ、DSNを作成
- システムデータソースの追加で、「SQL Server Native Client 11.0」を選択。
- 名前は任意。
- 「サーバー」には、「(localdb)\v11.0」と手入力。
- Windows認証を選択。
- 「既定のデータベース」をドロップダウンし、先ほど作ったデータベースファイルを選択。
- 一覧に出てこない場合は手入力で、パスとファイル名を入力。
- あとはOKで送って作成終了。
④Accessファイルを新規作成(ACCDBにて)
- 「外部データ」→「ODBCデータソース」で作成したDSNを指定して、リンクを張ればOK。
ODBCで「既定のデータベース」にファイルパスを手入力してあげたりしてもODBCデータソースアドミニストレーターのテスト接続の段階でエラーとなる事があります。しかし不思議なことに、上記④の方法で作成したODBCをAccessで指定すると問題なくつながったりします。
恐らく、初回アタッチ時に、接続を開始したり初期設定の構成に時間がかかり、ODBCではタイムアウトになるのではないか?と推測しています。ODBCのテスト接続ではだめでも、UDLファイルを作成してテストすると成功したりもします。このあたりが難しいですね。
LocalDBはSQLServer Expressエディションと同じように、ファイル感覚で扱える
SQLServer LocalDBはExpressエディションと同じようにファイル感覚で扱えます。バックアップを取るのも、データを移行するのもお手軽ですね。これは大きな利点です。ただし、手軽なことがデメリットにもなりかねません。セキュリティー上の問題ですね。
今回は以上です。後は入力システムのほうはAccessで開発、データベースの方はSSMSやVisualStudioで操作します。本番環境の構築に関しては次回「マイクロソフトAccessでSQL Server 2012 Express LocalDBを使う時の最少構成」にて取り上げます。
文章中で便宜上「本番環境」と表現していますが、「最小構成でのテスト環境を構築するテスト」を行う上での本番という意味です。
コメント