質問

私は .net (C#) アプリケーションで使用する組み込みデータベースを探していました (そして今も探しています)。注意点:アプリケーション (または少なくともデータベース) はネットワーク ドライブに保存されますが、一度に使用できるのは 1 ユーザーのみです。

さて、私の最初のアイデアは SQL Server コンパクト エディション. 。これは非常にうまく統合されていますが、ネットワークから切り離して実行することはできません。

火の鳥 にも同じ問題があるようですが、.net 統合は実際には一流ではないようで、ほとんど文書化されていません。

ブラックフィッシュSQL 面白そうですが、.net バージョンのトライアル版はありません。価格設定もOKです。

.net でうまく動作するものに関するその他の提案 そして 実際にサーバー ソフトウェアをインストールする必要がなく、ネットワーク外で実行できますか?

役に立ちましたか?

解決

SQLite あなたの質問を読んでいるときに頭に浮かんだのですが、ネットワークドライブからアクセスできることは確かです もし 一度に 1 ユーザーという制約を守ることになります。

.NET 上の SQLite - 3 分で起動して実行可能

他のヒント

Advantage Database Server (www.advantagedatabase.com) をお勧めします。これは、優れたサポートを備えた成熟した組み込み DB であり、.NET に加えて多くの開発言語からアクセスできます。「ローカル」バージョンは無料で、アプリケーション内で DLL 形式で実行され、サーバー/ネットワーク共有へのインストールは不要で、すべての主要な DB 機能をサポートします。DB ファイルやアプリケーション ファイルをすべてネットワーク上に保存できます。データがどこにあるかは関係ありません。

免責事項:私はADS R&Dグループのエンジニアです。約束します、素晴らしいです :)

ADO/Access はあなたのニーズに最適だと思われます。MS スタックに組み込まれており、よく味付けされており、マルチユーザーです。

次のようにプログラムで DB を作成できます。

Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")

その後、標準の ADO.NET メソッドを使用してデータベースと対話できるようになります。

Firebird 埋め込みを使用できます。これは、アプリに同梱する必要がある単なる dll です。

文書化されていないことについては、実際にはそうではありません。Firebird .NET ドライバーは ADO インターフェイスを実装しているため、ADO を知っていれば Firebird を操作できます。基本的に SQLConnection の代わりに FBConnection などを使用します。しかし、私のアドバイスは、データ アクセス レイヤーを使用し、コード上で次のようなインターフェイスのみを使用します。

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
    FbConnection cn = new FbConnection("...");
    return cn;
}

この例は非常に単純ですが、それ以上のことは必要ありません。

私たちはすべてのアプリケーションに問題なく Firebird を使用しています。少なくとも試してみてください。

チェックアウト VistaDB. 。彼らは非常に優れた製品を持っており、サーバーバージョン(3.4)はベータ版であり、リリースに非常に近づいています。

こちらへの投稿が少し遅れてしまいました。。そして VistaDB についてはすでに述べましたが、VistaDB は 100% 管理されているということを指摘しておきたいと思います (投稿には .net のタグが付けられていたため)。共有ネットワーク ドライブから実行でき、1MB の xcopy が展開されます。

SQL CEについて言及しているため、T-SQL構文とデータ型(実際にはSQL CEよりも多く)もサポートしており、更新可能なビュー、TSQL Proc、およびSQL CEにはないその他のものもあります。

なぜ使わないのか SQL Server 2005 Express エディション?

実際には、「埋め込み」が何を意味するかによって異なりますが、SQLServer2005E をアプリケーションとともに再配布することができ、ユーザーは SQLServer2005E がそこにあることを意識する必要はありません。

アプリケーションへの SQL Server Express の埋め込み

SQL Server Express のカスタム アプリケーションへの埋め込み

困惑しています。

あなたは、データベース自体がサーバーに保存されている埋め込みデータベースを求めています。つまり、データ ファイルをネットワーク共有に保存することになります。次に、SQL Compact Edition は動作しないと言います...ただし、この文書を見ると次のようになります。

Word文書:
SQL Server 2005 Compact Edition と SQL Server 2005 Express Edition の選択

8 ページでは、「ネットワーク共有上のデータ ファイル ストレージ」の横に大きな緑色のチェックマークが付いています。

したがって、あなたの最初の考えは正しかったように思えます。

それもあります ヴァレンティナ. 。Real Basic プロジェクトに取り組んでいたときにこの製品に出会いました。RBバージョンはとても良いです。

OODB を検討したことがありますか?私が推奨するさまざまなオープンソースの代替案の中から db4o (自己宣伝ですみません :)) 埋め込みモードまたはクライアント/サーバー モードで実行できます。

最高

アドリアーノ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top