トップ回答者
SQLServer2005Expressをインストールせずに,mdfファイルを参照したいです。

質問
-
はじめまして。
現在,WindowsのパッケージソフトをVisualStudio2005/C# .NETにて作成しています。
ある事象について悩んでおり,いろいろと調べたのですが解決しないため,質問させてください。
■状況
AOD.NETにてmdfファイルをアタッチし,ファイル内のデータをSelectするプログラムを作成しました。
作成した実行モジュールとmdfファイルを以下の実行環境のPCへコピーして使用したところ,例外エラー
となりました。
OS:WindowsXP SP2
インストールされているアプリケーション:.NET Framework2.0
そこで,SQLServer2005Expressをインストールしたところ,うまくmdfファイルにアタッチでき,Select文
にて,データを参照することができました。
■質問
質問したい事項としては,実行環境のPCへSQLServer2005Expressをインストールせずに,プログラム
でmdfファイルに対し,SQL文を発行することは可能であるか教えていただけますでしょうか?
回答
-
mdfファイルはあくまでもSQL Serverが扱うファイルですので、mdfファイルを扱うためのデータベースエンジンが必要となります。
例えば、Accessが扱うmdbファイルがAccessがインストールされていないPCでも扱えるのは、何らかの形でmdbファイルを扱うJETエンジンがインストールされているためで、JETエンジンがインストールされていないPCではmdbファイルは扱えません。
またmdbファイルはそれ単体で様々な情報を持っていますが、mdfファイルはシステムDB上に様々な情報を持っているため、それ単体では動作しません。
そのため、mdbファイルを扱うためのデータベースエンジンが必要となり、それがSQL Serverとなります。
「パッケージソフトを作成」とのことですので、インストーラを作成してSQL Server 2005 Express Editionもインストールしてみてはどうでしょうか?
Express Editionをインストーラに含めるための資料等も公開されていますので、色々参考にしてみてください。
(既にSQL Serverがインストールされている場合に備え、インスタンス名はデフォルトから変更しておくと良いでしょう)
もしも実行機SQL Serverをインストールしたくないのであれば、(処理内容にもよりますが)JETエンジンを使ってmdbファイルを扱うという方法もありますが、今更感もありますのであまりお勧めはできません。
あと蛇足かもしれませんが、開発機でmdfファイルが作成できた理由としても、Visual Studioインストール時に(特に指定しない限り)SQL Server 2005 Express Editionも一緒にインストールされるためです。
以上、参考になれば幸いです。
すべての返信
-
mdfファイルはあくまでもSQL Serverが扱うファイルですので、mdfファイルを扱うためのデータベースエンジンが必要となります。
例えば、Accessが扱うmdbファイルがAccessがインストールされていないPCでも扱えるのは、何らかの形でmdbファイルを扱うJETエンジンがインストールされているためで、JETエンジンがインストールされていないPCではmdbファイルは扱えません。
またmdbファイルはそれ単体で様々な情報を持っていますが、mdfファイルはシステムDB上に様々な情報を持っているため、それ単体では動作しません。
そのため、mdbファイルを扱うためのデータベースエンジンが必要となり、それがSQL Serverとなります。
「パッケージソフトを作成」とのことですので、インストーラを作成してSQL Server 2005 Express Editionもインストールしてみてはどうでしょうか?
Express Editionをインストーラに含めるための資料等も公開されていますので、色々参考にしてみてください。
(既にSQL Serverがインストールされている場合に備え、インスタンス名はデフォルトから変更しておくと良いでしょう)
もしも実行機SQL Serverをインストールしたくないのであれば、(処理内容にもよりますが)JETエンジンを使ってmdbファイルを扱うという方法もありますが、今更感もありますのであまりお勧めはできません。
あと蛇足かもしれませんが、開発機でmdfファイルが作成できた理由としても、Visual Studioインストール時に(特に指定しない限り)SQL Server 2005 Express Editionも一緒にインストールされるためです。
以上、参考になれば幸いです。
-
> どのような目的で使用されるのかわかりませんが、、もし、mdb程度のように使われたいということであれば、SQL Server Compact を使う手もあります。
SQL Server CompactってWindows Mobileって限定じゃなかったっけ?
と思ったら、いつの間にかデスクトップでも使えるようになっていたんですね。
自分自身も参考になりました。
http://www.microsoft.com/japan/sql/editions/compact/default.mspx