Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在C应用程序中执行sqlite3_C_Sqlite - Fatal编程技术网

无法在C应用程序中执行sqlite3

无法在C应用程序中执行sqlite3,c,sqlite,C,Sqlite,我正在尝试使用C应用程序显示firefox和chrome的历史记录。对于chrome的历史记录,它工作得很好,因为Sql命令不包含符号,但对于chrome,我的Sql请求包含符号,因此此函数不给我结果。它给我错误: 没有这样的表格:moz_History访问 或者,当我从命令提示符测试这个请求时,它工作得很好。我认为问题在于sql请求包含(41;符号。 Rq:对于chrome历史,它工作得很好。callbackprefox是用来显示结果的函数 我使用windows和代码块作为IDE。当我从sql

我正在尝试使用C应用程序显示firefox和chrome的历史记录。对于chrome的历史记录,它工作得很好,因为Sql命令不包含符号,但对于chrome,我的Sql请求包含符号,因此此函数不给我结果。它给我错误:

没有这样的表格:moz_History访问

或者,当我从命令提示符测试这个请求时,它工作得很好。我认为问题在于sql请求包含(41;符号。 Rq:对于chrome历史,它工作得很好。callbackprefox是用来显示结果的函数 我使用windows和代码块作为IDE。当我从sqlite_master执行select name时

system()
启动一个单独的shell,该shell在命令执行后终止,因此不会更改实际程序的当前目录


您应该手动查找目录名,并将其包含在数据库文件名中。

您确定您的代码打开了正确的数据库吗?是的,问题是,当我在命令提示符中复制并粘贴相同的sql命令时,它工作得很好。这不可能是环境或库的问题,因为sqlite3在显示chrome History时起作用。如果您说是,但您的代码报告它在SQL中找不到表,您已经通过在命令行工具中运行SQL证明了该表的存在。尝试将SQL替换为“从sqlite_master中选择名称”,并打印结果以查看代码查找的表抱歉,它会显示此信息。moz_历史参观,moz_地方存在。我把图像添加到帖子中
int DisplayFirefoxHistory()
    {
     sqlite3 *db;
    char *err_msg = 0;

    system("cd C:/Users/******/AppData/Roaming/Mozilla/Firefox/Profiles/*.default");
    int rc = sqlite3_open("places.sqlite", &db);

    if (rc != SQLITE_OK) {
    fprintf(stderr, "Cannot open database: %s\n",sqlite3_errmsg(db));
    sqlite3_close(db);
           return 1;
        }

char *sql = "select url,datetime(visit_date/1000000-11644473600,'unixepoch') from  moz_historyvisits,moz_places order by visit_date desc";

        rc = sqlite3_exec(db, sql, callbackFirefox, NULL, &err_msg);

        if (rc != SQLITE_OK ) {

            fprintf(stderr, "Failed to select data\n");
            fprintf(stderr, "SQL error: %s\n", err_msg);

            sqlite3_free(err_msg);
            sqlite3_close(db);

            return 1;
        }

        sqlite3_close(db);
    return 0;
    }
system("cd C:/Users/******/AppData/Roaming/Mozilla/Firefox/Profiles/*.default");