<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      前言

      c語言只需要下載sqlite.dll即可操作數(shù)據(jù)庫,qt sql只是對sqlite的api做了一層驅(qū)動包裝而已

      下載 

       

       

       

      #include <stdio.h>
      #include <assert.h>
      #include <string.h>
      #include "sqlite3.h"

      void sqlite3_test_get_table(sqlite3 *db)
      {
      char **rows = NULL;
      int nrow = 0, ncolumn = 0;
      int res = sqlite3_get_table(db, "select id, name from stu order by id", &rows, &nrow, &ncolumn, NULL);
      if (res != SQLITE_OK) {
      char err[1024] = { 0 };
      snprintf(err, sizeof err, sqlite3_errmsg(db));
      printf("sqlite3_prepare_v2 error: %s\n", err);
      return;
      }
      printf("獲取到%d條數(shù)據(jù),列數(shù)量為: %d\n", nrow, ncolumn);

      for (int i = 0; i <= nrow; i++) {
      for (int j = 0; j < ncolumn; j++) {
      printf("%s\t", rows[i * ncolumn + j]);
      }
      printf("\n");
      }
      sqlite3_free_table(rows);
      }

      void sqlite3_test_update(sqlite3 *db)
      {
      sqlite3_exec(db, "begin", NULL, NULL, NULL);
      sqlite3_stmt *stmt = NULL;
      const char *sql = "select id,name,age from stu order by id asc";
      const char *err = NULL;
      int res = sqlite3_prepare_v2(db, sql, -1, &stmt, &err);
      assert(res == SQLITE_OK);
      printf("%s\n", sql);
      while (sqlite3_step(stmt) == SQLITE_ROW) {
      int id = sqlite3_column_int(stmt, 0);
      const char *name = (const char *)sqlite3_column_text(stmt, 1);
      int age = sqlite3_column_int(stmt, 2) + 1;
      printf("%d\t%s\t%d\n", id, name, age);

      char sql[1024];
      snprintf(sql, sizeof sql, "update stu set age = %d where id = %d;", age, id);
      res = sqlite3_exec(db, sql, NULL, NULL, NULL);
      assert(res == SQLITE_OK);
      }
      sqlite3_exec(db, "commit", NULL, NULL, NULL);

      sqlite3_finalize(stmt);
      }

      void sqlite3_test_insert(sqlite3 *db)
      {
      sqlite3_stmt *stmt;
      const char *sql = "insert into stu (name, age) values (?, ?)";
      const char *names[] = {"凡蕾", "幻靈", "紫安"};
      int ages[] = {15, 18, 23};
      int res = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
      if (res != SQLITE_OK) {
      printf("sql prepare error: %s\n", sql);
      return;
      }
      sqlite3_exec(db, "begin", NULL, NULL, NULL);
      for (int i = 0; i < 3; i++) {
      sqlite3_bind_text(stmt, 1, names[i], -1, NULL);
      sqlite3_bind_int(stmt, 2, ages[i]);

      res = sqlite3_step(stmt);
      if (res != SQLITE_DONE) {
      printf("insert error. res = %d. name: %s age: %d\n", res, names[i], ages[i]);
      break;
      }
      printf("insert success. name: %s age: %d\n", names[i], ages[i]);

      sqlite3_reset(stmt);
      }
      sqlite3_exec(db, "commit", NULL, NULL, NULL);
      sqlite3_finalize(stmt);
      }

      int main(int argc, char const *argv[])
      {
      sqlite3 *db = NULL;
      int res = sqlite3_open("sqlite3test.db", &db);
      if (res != SQLITE_OK) {
      printf("open database sqlite3test.db fail!\n ERR: %s\n", sqlite3_errmsg(db));
      return -1;
      }
      printf("open database sqlite3test.db ok!\n");

      sqlite3_test_get_table(db);

      sqlite3_close(db);
      return 0;
      }

      posted on 2024-02-13 21:38  jk0011  閱讀(82)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻饥渴偷公乱中文字幕| 99亚洲男女激情在线观看| 国产精品亚洲二区在线看| 中文字幕人妻不卡精品| 2021国产成人精品久久 | 综合欧美视频一区二区三区| 国产欧美日韩高清在线不卡| 丰满熟妇人妻中文字幕| 国产精品老熟女露脸视频| 涪陵区| 亚洲激情一区二区三区在线| 孕妇特级毛片ww无码内射| 日韩中文字幕精品人妻| 精品少妇人妻av无码专区| CAOPORN免费视频国产| 九九色这里只有精品国产| 精品无码成人片一区二区98| 欧美成人无码a区视频在线观看| 新和县| 国产精品三级中文字幕| 亚洲熟妇自偷自拍另欧美| 国产做无码视频在线观看| 国偷自产一区二区三区在线视频| 久久亚洲精品日本波多野结衣| 国产亚洲精品综合99久久| 中文字幕在线无码一区二区三区 | 国产丝袜视频一区二区三区 | 日本亚洲一区二区精品| 国产激情无码一区二区三区| 国产亚洲精品俞拍视频| 中文字幕亚洲男人的天堂| 无码专区人妻系列日韩精品| 午夜成人精品福利网站在线观看| 真实单亲乱l仑对白视频| 国产乱子伦一区二区三区四区五区| 日韩一区二区三区精彩视频| 国产精品自在线拍国产手机版 | 风韵丰满妇啪啪区老老熟女杏吧 | 国产精品自拍中文字幕| 国产午夜精品亚洲精品国产 | 亚洲性av网站|