导出sqlite3的表到文件我在Fedora的14.I我能表导出到使用这样的命令提示符的文件中使用的sqlite3版本3.6.23.1,使用“C”执行API
sqlite3 data.db
sqlite> .output sample.txt;
sqlite> select *from sample;
我希望在应用程序级别处理这种情况。
我正在使用sqlite3开源“C”API在应用程序级别执行此命令。
execute("delete from sample:);// working fine
execute(".output sample.txt"); //Not working
其投掷的错误称为"SQL error in sqlite3_exec: near ".": syntax error"
请建议我我如何创建要导入的文件使用此API的数据。
API的函数定义。
int execute(const char* fmt, ...)
{
char *err_messg;
int ret = 0, result = 0;
char sql_string[1024] = ""; //this honestly needs to be more elegant; will do for now
va_list args;
va_start(args, fmt);
ret = vsprintf(sql_string, fmt, args);
va_end(args);
printf("sql_string: %s\n", sql_string);
if (!ret)
result = 0;
else
result = 1;
if (result != -1)
{
if (sqlite3_exec(db_conn, sql_string, NULL, 0, &err_messg) == SQLITE_OK) //Actual API which will work with database.
{
return SUCCESS;
}
else
{
printf("\n SQL error in sqlite3_exec: %s\n", err_messg);
return DBEXCE_FAIL;
}
}
return SUCCESS;
}
访问谢谢......最后它的工作.. – user1495372
在上面回调函数的文件指针已closed.so我无法读取该文件。 – user1495372