您好,我将如何格式化结果
sql = "SELECT * from COMPANY ORDER BY ID";
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
我读到这里有控制台命令 https://www.tutorialspoint.com/sqlite/sqlite_commands.htm
所以我尝试了
std::string c3 = "sqlite>.header on";
std::string c1 = "sqlite>.mode column";
cout << system(c3.c_str()) << endl;
cout << system(c1.c_str()) << endl;
但这并不能获得像结果这样的表格格式
我该怎么做?我已经用谷歌搜索了 3 个小时,但仍然一无所获
最佳答案
您无法从 sqlite3
用户程序控制格式,因此使用 system()
调用它不会控制 C API。
您应该使用回调
函数来执行此操作。来自同tutorialpoint site :
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s: ", (const char*)data);
for(i = 0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
关于c++ - 格式化 sqlite3_exec 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59391052/