0

SQL Server 2005 Express を使用するデスクトップ アプリケーションをいくつか開発しました。

ここで、SQL Server のサービスが想定されていない環境にアプリケーションを展開する必要があります。

SQL Server 2005 サービスを実行せずにアプリケーションを展開できるように、ファイルのみを使用する.MDFか、ファイルをそのような形式に変換できるメカニズムが必要です。

私に何ができる?

データベースの設計はやや複雑であることを忘れないでください。そのため、MS Access ファイルの再作成を回避しようとしています。SQLite の使用はオプションかもしれません。しかし、ソースコードの変更を避けようとしています。

4

3 に答える 3

1

Dai はいくつかの良い点を指摘していますが、SQL Server 2012 の LocalDB を検討することにも価値があると思います。これは本質的に、SQL Express と SQL サーバーを強化する同じ DB エンジンですが、SQLExpress や SQLServer のようなサービスとしてではなく、クライアント アプリケーションの子 exe として自動的に実行されます。

この投稿では、LocalDB、SQL Compact、SQL Express、および SQL Server を比較しています: http://blogs.msdn.com/b/jerrynixon/archive/2012/02/26/sql-express-v-localdb-v-sql-compact-エディション.aspx

于 2013-04-27T06:58:41.397 に答える
0

要するに、できません。

データベースが単純なテーブルのセットであり、リレーションと結合が最も単純であり、単純な CRUD 操作のみを実行する場合を除き (投稿がそうでないことを意味します)、RDBMS エンジン間で移植可能なデータベースを作成することはできません。

従来は、データ アクセス レイヤーをいくつかの共通インターフェイスで抽象化してから、RDMBS 固有のクエリとコマンドを実装していました。

public interface IDatabase {
    Account GetAccount(Int64 accountId);
    Account[] GetAccounts(Int32 page, Int32 pageSize, out Int32 totalRecords);
    etc...
}

public class MSSqlServerDatabase : IDatabase {
}

public class MySqlServerDatabase : IDatabase {
}

ただし、SQLite は完全に移植可能で、どこでも動作するため、おそらく SQLite に移行した方がよいでしょう。サービスのインストールも必要ありません。弾丸を噛む:)

于 2013-04-27T05:04:54.147 に答える
0

SQL Server Compact Editionは、データベースの最大サイズが 4 GB などの制限に耐えられる場合に機能します。.mdf ファイルを SQL CE で使用される .sdf 形式に変換する必要があります。その方法は次のとおりです

于 2013-04-27T05:13:39.843 に答える