c++ - 格式化 sqlite3_exec 结果

标签 c++ c sqlite

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

   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/

相关文章:

ios - Cordova 2.7 - iOS 插件 SQLite exec 已弃用

ios - 如何找出SQLITE查询结果为NULL?

c++ - 访问由指向其基类的指针指向的派生类对象的成员变量

c++ - 将 WRL 用于 C++/CX 函数 - 链接器错误

C算术、取模

c++ - 单声道嵌入: How to access type of a property in C/C++

c++ - 使用 QApplication::applicationDirPath 调用重载 'arg(QString (&)())' 的调用不明确,为什么?

c++ - 如何在两个类之间创建指针?

c - OpenMP time 和 clock() 给出两个不同的结果

ruby - Heroku 和 Datamapper 问题