none
SQLServer2005Expressをインストールせずに,mdfファイルを参照したいです。 RRS feed

  • 質問

  •  

    はじめまして。

     

    現在,WindowsのパッケージソフトをVisualStudio2005/C# .NETにて作成しています。

    ある事象について悩んでおり,いろいろと調べたのですが解決しないため,質問させてください。

     

    ■状況

    AOD.NETにてmdfファイルをアタッチし,ファイル内のデータをSelectするプログラムを作成しました。

    作成した実行モジュールとmdfファイルを以下の実行環境のPCへコピーして使用したところ,例外エラー

    となりました。

      OS:WindowsXP SP2

      インストールされているアプリケーション:.NET Framework2.0

    そこで,SQLServer2005Expressをインストールしたところ,うまくmdfファイルにアタッチでき,Select文

    にて,データを参照することができました。

     

    ■質問

    質問したい事項としては,実行環境のPCへSQLServer2005Expressをインストールせずに,プログラム

    でmdfファイルに対し,SQL文を発行することは可能であるか教えていただけますでしょうか?

     

    2008年10月1日 8:52

回答

  • 不可能です。
    2008年10月1日 12:14
  • 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も一緒にインストールされるためです。

     

    以上、参考になれば幸いです。

     

    2008年10月1日 14:34
  • ありがとうございます。

     

    昨日も一日中調べておりましたが,わかりませんでした。

    回答していただき,本当にありがとうございました。

    2008年10月1日 23:57

すべての返信

  • 不可能です。
    2008年10月1日 12:14
  • 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も一緒にインストールされるためです。

     

    以上、参考になれば幸いです。

     

    2008年10月1日 14:34
  • ありがとうございます。

     

    昨日も一日中調べておりましたが,わかりませんでした。

    回答していただき,本当にありがとうございました。

    2008年10月1日 23:57
  • どのような目的で使用されるのかわかりませんが、、もし、mdb程度のように使われたいということであれば、SQL Server Compact を使う手もあります。

    2008年10月2日 0:41
  • > どのような目的で使用されるのかわかりませんが、、もし、mdb程度のように使われたいということであれば、SQL Server Compact を使う手もあります。

     

    SQL Server CompactってWindows Mobileって限定じゃなかったっけ?

    と思ったら、いつの間にかデスクトップでも使えるようになっていたんですね。

    自分自身も参考になりました。

    http://www.microsoft.com/japan/sql/editions/compact/default.mspx

     

    2008年10月2日 0:55