標(biāo)題: VC操作sqlite的總結(jié) [打印本頁]

作者: liumei    時(shí)間: 2014-5-7 03:19
標(biāo)題: VC操作sqlite的總結(jié)
新建一個(gè)MFC工程,將sqlite3.h和sqlite3.lib文件放到該工程的路徑中,將sqlite3.dll文件放到debug文件夾中。接下來就是編碼工作。

首先,不能忘了下面兩行:

#include "sqlite3.h"

#pragma comment(lib, "sqlite3.lib")

然后,就是各種基礎(chǔ)操作了:

void CVcsqliteDlg::OnButton1()

{

         sqlite3 *db=NULL;

    char *errMsg = NULL;

    int rc;

    CString strtemp;



    //連接數(shù)據(jù)庫

         //若沒有則建一個(gè)數(shù)據(jù)庫

    rc = sqlite3_open("myfirstdb.db", &db);

    if( rc )

         {

                  strtemp.Format("Can't open database: %s\n", sqlite3_errmsg(db));

        sqlite3_close(db);

         }

         else

         {

                  strtemp="open db ok!";

                  Beep(100,50);

         }

    m_list.InsertString(0,strtemp);

         //建一個(gè)表

    rc = sqlite3_exec(db, "CREATE TABLE students(number varchar(10), name varchar(10),sex varchar(6), age varchar(2));", NULL, NULL, NULL);

    if (0!= rc)  

     {   

         strtemp.Format("CREATE Error:%s",errMsg);

     }

          else   

     {   

                   strtemp="CREATE OK";

     }

          m_list.InsertString(0,strtemp);

         //插入

    rc = sqlite3_exec(db, "INSERT INTO \"students\" VALUES('567','cd','ef','gh');",0,0,&errMsg);

     if (0!= rc)   

     {   

         strtemp.Format("Insert Error:%s",errMsg);

     }

          else   

     {   

                   strtemp="Insert OK";

     }

          m_list.InsertString(0,strtemp);

    //改

         rc=sqlite3_exec(db,"UPDATE students SET number='00',sex='male' WHERE age='gh';",0,0,&errMsg);

         if (0!=rc)

         {

                  strtemp.Format("Update Error:%s",errMsg);

         }

         else

         {

                  strtemp="Update OK";

         }

         m_list.InsertString(0,strtemp);

    //刪

         rc=sqlite3_exec(db,"DELETE FROM students WHERE age='gh';",0,0,&errMsg);

         if (0!=rc)

         {

                  strtemp.Format("delete error:%s",errMsg);

         }

         else

         {

                  strtemp="delete ok";

         }

         m_list.InsertString(0,strtemp);

    //查

         int nrow = 0, ncolumn = 0;

    char **azResult; //二維數(shù)組存放結(jié)果

    CString sql="SELECT * FROM students";

    rc=sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &errMsg );

    if (0!=rc)

    {

                  strtemp.Format("query error:%s",errMsg);

    }

         else

         {

                  strtemp.Format("共%d行,共%d列,結(jié)果%s",nrow,ncolumn,azResult[5]);

         }

         m_list.InsertString(0,strtemp);



    //釋放azResult 的內(nèi)存空間

    sqlite3_free_table( azResult );

    //關(guān)閉數(shù)據(jù)庫

         sqlite3_close(db)





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1