我在使用我的代码访问在Windows 98计算机上从sqlite创建的数据库时遇到问题。在输出错误消息时,我收到磁盘I / O错误。我正在使用sqlite版本3.6.23来创建数据库。以下是我的代码中调用sqlite3以访问数据库的部分:
int sqlite3_extended_result_codes(sqlite3*, int on);
int result = sqlite3_open_v2(sqliteDatabasePath, &database, SQLITE_OPEN_READONLY, NULL);
if(result != SQLITE_OK)
{
cout << "Error opening database file: " << sqliteDatabasePath
<< endl << "Sqlite3 Error Code: " << result
<< endl;
cout << sqlite3_extended_errcode(database) << endl;
throw;
}
cout << "Successfully opened database " << sqliteDatabasePath << endl;
我没有找到任何可以告诉我的原因,否则为什么这在Win98中不起作用,但也许我看起来不够努力。任何提示或帮助将不胜感激!
答案 0 :(得分:0)
这似乎是一个已知问题,已在SQLITE论坛中讨论过。
原因是读取和写入文件时改变了#34; OVERLAPPED&#34;。根据SQLITE,他们不建议在旧版本的Windows上使用它。如果你真的必须使用它,更喜欢旧版本。
通过这个链接,他们建议了一个替代方法,让sqlite在Windows 98上运行。
http://sqlite.1065341.n5.nabble.com/Running-on-windows-98-td66471.html