Yvision.kzYvision.kz
kk
Разное
Разное
399 767 постов40 подписчиков
Всяко-разно
-4
12:35, 26 сентября 2010

Unable to open the database file ([SQLiteException (0x80004005)])

System.Data.SQLite.SQLiteException: Unable to open the database file

[SQLiteException (0x80004005): Unable to open the database file
unable to open database file]
System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt) +375
System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt) +199

...

Эта ошибка возникает при попытке выполнения SQL-инструкции INSERT (UPDATE). Внимание! Не путать с подобным исключением при выполнении открытия базы данных (System.Data.SQLite.SQLite3.Open(...)). См. разницу в трассировке кода.

Всё дело в недостаточных правах на каталог (!), в котором находится *.db-файл (SQLite). Т.е. следует задать права для чтения/записи не только для файла базы данных, но и для каталога, в котором этот файл находится. Это нужно SQLite для создания временного файла журнала операций.

На поиски решения этой проблемы ушли весь выходной день, пара-тройка чайников чая, беглое чтение исходников сборки sqlite3.dll и System.Data.SQLite.dll, и копание на форуме http://sqlite.phxsoftware.com/.

Спасибо IJsbrand, который сам потратил несколько месяцев и подарил это время многим программерам :) Его пост http://sqlite.phxsoftware.com/forums/p/689/5445.aspx#5445.

-4
1370
0