SQLite第五課 應用案例

來源:互聯網
上載者:User

標籤:sqlite 應用 案例

1 開啟資料庫檔案

  sqlite3* m_db = NULL;

  int ret = sqlite3_open_v2("test.db", &db, SQLITE_OPEN_READWRITE, NULL);

  if (ret != SQLITE_OK)

  {

    return;

  }


2 如果表不存在,建立表

char szCreateUserDataSql[1024] = "create table if not exists tb_user (id INTEGER ,\

    type INTEGER,\

    kind INTEGER)";


3 建立唯一的主鍵ID

char szCreateUserDataSql[1024] = "create table if not exists tb_user (id INTEGER PRIMARY KEY AUTOINCREMENT,\

    type INTEGER,\

    kind INTEGER)";


4 查詢

  char szSql[1024] = {0};

  sprintf(szSql, "select distinct * from tb_test");

  sqlite3_stmt* stmt = NULL;

  sqlite3_prepare(m_db, szSql, -1, &stmt, 0);

  while (sqlite3_step(stmt) == SQLITE_ROW)

  {

    const unsigned char*  szPOIName = sqlite3_column_text(stmt, 0);

    char szName[128] = {0};

    if (szPOIName)

    {

      sprintf(szName, "%s", szPOIName);

    } 

    int kx = sqlite3_column_int(stmt, 3);

    float x = sqlite3_column_double(stmt, 5);

  }

  sqlite3_finalize(stmt);


5 擷取sql執行失敗的錯誤資訊

char* errMsg = NULL;

char* szSql = "select * from address";

nRet = sqlite3_exec(pDB, szSql, NULL, NULL ,&errMsg);

if (nRet != SQLITE_OK)

{

   cout<<errMsg<<endl;

   sqlite3_free(errMsg);

}

注意:釋放errMsg指向的記憶體

6 關閉資料庫

  sqlite3_close(db);


SQLite第五課 應用案例

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.