新建一個MFC工程,將sqlite3.h和sqlite3.lib文件放到該工程的路徑中,將sqlite3.dll文件放到debug文件夾中。接下來就是編碼工作。
首先,不能忘了下面兩行:
#include "sqlite3.h"
#pragma comment(lib, "sqlite3.lib")
然后,就是各種基礎操作了:
void CVcsqliteDlg::OnButton1()
{
sqlite3 *db=NULL;
char *errMsg = NULL;
int rc;
CString strtemp;
//連接數(shù)據(jù)庫
//若沒有則建一個數(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);
//建一個表
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ù)組存放結果
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列,結果%s",nrow,ncolumn,azResult[5]);
}
m_list.InsertString(0,strtemp);
//釋放azResult 的內存空間
sqlite3_free_table( azResult );
//關閉數(shù)據(jù)庫
sqlite3_close(db)
|