簡體   English   中英

格式化 sqlite3_exec 結果

[英]formatting sqlite3_exec result

你好,我將如何格式化結果

   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。

您應該使用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 = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
   }

   printf("\n");
   return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM