sqlite + مشاكل مكانية
-
21-09-2019 - |
سؤال
أحاول الوصول إلى مكاني من C# باستخدام System.Data.Sqlite مزود. عندما أحاول تحميل امتداد المكاني ، أحصل دائمًا على
System.Data.SQLite.SQLiteException: SQLite error
The specified module could not be found.
خطأ ، على الرغم من أن 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 ، اكتشفت أن هناك بعض DLLs الإضافية اللازمة لتشغيلها:
- libproj-0.dll
- libgeos-3-1-1.dll
- libgeos_c-1.dll
يمكنك العثور على هذه على صفحة تنزيل المكاني. فقط نسخها إلى دليل bin.
تحديث: يحتاج DLL إضافي واحد libiconv2.dll
نصائح أخرى
كان لدي نفس المشكلة بالضبط في جافا. اتصلت System.Load () لجميع DLLs التابعة وكل شيء يعمل مثل البطل!
- libproj-0.dll
- libgeos-3-1-1.dll
- libgeos_c-1.dll
- libiconv2.dll
- libcharset1.dll
لا تنتمي إلى StackOverflow