格式化sqlite3_exec结果

formatting sqlite3_exec result

本文关键字:结果 exec sqlite3 格式化      更新时间:2023-10-16

您好,我将如何格式化结果

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;

但这对于获得像 result 这样的表格格式不起作用

我该怎么做?我已经在谷歌上搜索了 3 个小时,但仍然一无所获

您无法从sqlite3用户程序控制格式,因此使用system()调用它不会控制 C API。

您应该使用callback函数执行此操作。从同一教程点站点:

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 = %sn", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("n");
return 0;
}