SQLite + SpatiaLite の問題
-
21-09-2019 - |
質問
System.Data.SQLite プロバイダーを使用して C# から SpatiaLite にアクセスしようとしています。SpatiaLite 拡張機能をロードしようとすると、常に次のメッセージが表示されます。
System.Data.SQLite.SQLiteException: SQLite error
The specified module could not be found.
spatialite の dll が bin ディレクトリにコピーされているにもかかわらず、エラーが発生します。dllへの絶対パスを指定してみましたが、役に立ちませんでした。
コードは次のとおりです。
string connectionString = @"Data Source=D:\MyStuff\projects\OsmUtils\trunk\Data\Samples\DB\osm.sqlite";
using (SQLiteConnection connection = new SQLiteConnection (connectionString))
{
connection.Open();
using (SQLiteCommand command = connection.CreateCommand())
{
command.CommandText = @"SELECT load_extension('libspatialite-1.dll');";
command.ExecuteScalar();
}
...
から このリンク これはうまくいくはずだという印象を受けます。
前もって感謝します
解決
sqlite3.exe コマンド ライン ツールのおかげで、これを実行するには追加の DLL が必要であることがわかりました。
- libproj-0.dll
- libgeos-3-1-1.dll
- libgeos_c-1.dll
これらは次のサイトで見つけることができます SpatiaLiteのダウンロードページ. 。それらを bin ディレクトリにコピーするだけです。
アップデート: 追加で必要な DLL が 1 つあります libiconv2.dll
他のヒント
まったく同じ問題がありました ジャワ. 。私は電話した System.load() 依存する DLL もすべて完璧に機能しました。
- libproj-0.dll
- libgeos-3-1-1.dll
- libgeos_c-1.dll
- libiconv2.dll
- libcharset1.dll
所属していません StackOverflow