problemi SQLite + SpatiaLite
-
21-09-2019 - |
Domanda
Sto cercando di accedere a una SpatiaLite da C # utilizzando provider di System.Data.SQLite. Quando provo a caricare l'estensione SpatiaLite, ho sempre arrivare alla
System.Data.SQLite.SQLiteException: SQLite error
The specified module could not be found.
errore, anche se dll del spatialite è stato copiato nella directory bin. Ho anche cercato di specificare il percorso assoluto del dll, ma senza alcun risultato.
Ecco il codice:
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();
}
...
questo link ho l'impressione questo dovrebbe funzionare .
Grazie in anticipo
Soluzione
Bene grazie a sqlite3.exe strumento a riga di comando, ho scoperto che ci sono alcune DLL aggiuntivi necessari per questo per l'esecuzione:
- libproj-0.dll
- libgeos-3-1-1.dll
- libgeos_c-1.dll
È possibile trovare questi su di SpatiaLite pagina di download . Basta copiare nella directory bin.
UPDATE: una dll aggiuntivo necessario è libiconv2.dll
Altri suggerimenti
Ho avuto lo stesso problema in Java . Ho chiamato System.load () per tutte le DLL dipendenti e tutto ha funzionato come un campione!
- libproj-0.dll
- libgeos-3-1-1.dll
- libgeos_c-1.dll
- libiconv2.dll
- libcharset1.dll