我第一次使用sqlite3,在打开文件之前无法正确检查文件。到目前为止,sqlite总是在任何文件上返回OK。
此外,文件名是从GTK文件选择器返回的变量。它返回一个绝对路径,我猜这不是问题。
感谢您的帮助。
这是代码的片段:
int rc;
char *filename;
sqlite3 *db;
filename = gtk_file_chooser_get_filename(etc.);
if(SQLITE_OK == rc = sqlite3_open(filename,&db))
{ etc. }
答案 0 :(得分:5)
答案 1 :(得分:-1)
你的代码是否编译?
我相信这是一个错误
if (SQLITE_OK == rc = sqlite3_open(filename,&db)) { /* ... */ }
与
相同if ((SQLITE_OK == rc) = sqlite3_open(filename,&db)) { /* ... */ }
并且您无法将某些内容(sqlite3_open()
调用的结果)分配给(SQLITE_OK == rc)
。
试试这个:
if ((rc = sqlite3_open(filename,&db)) == SQLITE_OK) { /* ... */ }
/* or, if you really want the constant on the left side of the comparison */
if (SQLITE_OK == (rc = sqlite3_open(filename,&db))) { /* ... */ }