1

クライアント アプリケーションで SQL Server CE データベースを展開する最も適切な方法について質問があります。SQL Server CE の前提条件などをインストールする必要があることは理解しているので、これを機能させることに関する質問ではありません。すでにそうです。

現時点では、インストール中に適切な場所にコピーされる .mdf ファイル (データを含まない) のコピーをアプリケーションと共に出荷するだけです。これは完全に正常に動作しますが、これがアプリケーションでデータベースを展開する「正しい」方法なのか、それともデータベースが a.) インストール中に (カスタム インストール アクションとして) 生成されるのか、b.) のいずれかである必要があるのか​​ 疑問に思っていました。アプリケーションの最初の実行時に生成されます。

ご意見やご提案をお待ちしております。この質問に対する確実な答えはおそらくないことに気づきました。

4

2 に答える 2

1

これは *.mdf ファイルに関するものであり、SqlServerCE dll が使用可能であることを確認する方法ではありません。

データベース アプリケーションをどのように展開する必要があるかは、次の質問に大きく依存します。

データベースはユーザーごとですか?

  • そうでない場合は、そうすべきですか?
    • アプリケーション ディレクトリにデータベースを配置することは、ファイルを変更するときに UAE リクエストをトリガーする可能性があるため、Vista 以降ではお勧めできません。
  • ユーザーごとの場合、現実的にはユーザーごとに新しいものを生成する必要があるため、このためにいくつかのコードを実行する必要があるため、次の方法のいずれかを簡単に使用できます。

そうでない場合は、単一の初期ファイルを含めるだけで問題なく機能し、最も簡単なオプションです。

データベースは最初から空ですか (つまり、コードでテーブル構造を作成し、そのベースとなる *.mdf ファイルがどこにもない可能性があります。

  • これにより、テストがよりクリーンになりますが、SQL Sever ツールなどを使用して「初期」データベースと対話できないことを意味します。
  • 初期状態がスキーマのみの場合、または 'テンプレート' を dll に埋め込む非常に小さい場合、展開がより柔軟になり、テンプレート データベースを誤って削除/変更してテンプレート データベースを誤って '壊す' ことはありません。

重要なデータがある場合、これはほぼ確実に組み込みオプションを除外します。

dll を変更せずに変更したい重要なデータがデータベースの初期状態にありますか?

  • おそらく、クライアントごとにカスタマイズしたいでしょう
  • おそらく、新しいビルドを生成せずにカスタム展開を作成できるようにしたいでしょう。

その場合、埋め込みリソースとしてではなく、ファイルを個別に作成する必要があります。

于 2009-08-24T17:48:16.520 に答える