ストレージの分離をサポートする組み込みデータベース エンジンを探しています。現在、VistaDB を認識しています。他に何をお勧めできますか?
要件は非常に単純です。
- xcopy の展開
- 分離ストレージのサポート
- できれば無料
IS を使用する場合、ファイルへの正確なパスがわからないことに注意してください。
ストレージの分離をサポートする組み込みデータベース エンジンを探しています。現在、VistaDB を認識しています。他に何をお勧めできますか?
要件は非常に単純です。
IS を使用する場合、ファイルへの正確なパスがわからないことに注意してください。
VistaDBは分離ストレージをサポートしているようです。私はそれを1年近く使用しており、すべてにおいて非常に満足しています。
無料ではありませんが、価格はバージョン 4 で60米ドルからです (まもなくリリースされます)。無料のExpress Editionがありますが、これは非商用プロジェクト専用です。
ロイドの答えに続いて、uSqliteと呼ばれる sqlite 用のラッパー ライブラリがあり、直接または最小限の変更で目的を達成する必要があります。
詳しく説明するために (Aku のフォローアップの質問について)、uSQLstPoll()
ルーチン (uSQLst.c に含まれる) を変更することをお勧めします。この段階で、接続しているクライアントからのポートとアドレスの情報が得られます (sockaddr に含まれています)。その情報に基づいてuSQLst
構造を変更し、接続先のローカル データベース ファイルのファイル名を変更できます。
免責事項: これはほとんど調査に基づいた解決策であることに注意してください。展開する前に、より徹底的な調査を行うことをお勧めします。
Sqlite は組み込み用であり、無料です。
分離ストレージを直接サポートしていませんが、分離ストレージ API を自分で呼び出して、生成されたファイル名を使用するファイル名として Sqlite に渡すのはかなり簡単なようです。
この質問はかなり古いものですが、VistaDB は分離ストレージをサポートしており、XCopy で展開できます。無料版はありませんが、商用製品です。
サポートされているその他の情報については、VistaDB の利点に関する SO の投稿を参照してください。
分離ストレージのサポートは、ファイル名がわからないだけではありません。ストリームを操作する必要があり、ファイル レベルのロックを必要としない必要があります。同じパスに一時ファイルを作成することはできません。UAC とスペースの制限を理解する必要があります。
私の知る限り、VistaDB は分離ストレージをサポートする唯一の組み込み SQL データベースです。
Firebird Embeddedでそのようなことができます。
分離ストレージをネイティブにサポートしていませんが、ユーザーごとに新しいデータベースを作成するのは非常に簡単です。