下載sqlite的源碼,其中的sqlite3.c 源碼,sqlite3.h 為標頭檔。
可以先把sqlite編譯為靜態庫,然後就可以在其他項目中使用。這樣做的好處是不需要把測試程式與sqlite source混在一起,導致編譯緩慢,使用不方便。
Sqlite編譯
1 在vc ++ 中建立win32 Project ,在嚮導工具中選擇Applicationtype 為Static libray,Additional options 選擇空,add common header file 選擇空。
2 建立項目完成後在source 中添加 sqlite3.c 源碼,在 header files中添加 sqlite.h.
3 編譯項目,此時,供其他項目使用的靜態庫sqlite3.lib檔案已經產生。如果後面需要使用sqlite資料庫,只需要引入sqlite3.h標頭檔與sqlite3.lib就可以使用了。
Sqlite 樣本程式
1在vc ++ 中建立win32 Project sqlitesample,在嚮導中選擇Console程式,其他一概選為空白。
引入sqlite.h 標頭檔。
2 在 main中的源碼如下
Sqlite 學習- 編譯sqlite靜態庫,供其他項目調用)下載sqlite的源碼,其中的sqlite3.c 源碼,sqlite3.h 為標頭檔。可以先把sqlite編譯為靜態庫,然後就可以在其他項目中使用。這樣做的好處是不需要把測試程式與sqlite source混在一起,導致編譯緩慢,使用不方便。Sqlite編譯1 在vc ++ 中建立win32 Project ,在嚮導工具中選擇Applicationtype 為Static libray,Additional options 選擇空,add common header file 選擇空。2 建立項目完成後在source 中添加 sqlite3.c 源碼,在 header files中添加 sqlite.h.3 編譯項目,此時,供其他項目使用的靜態庫sqlite3.lib檔案已經產生。如果後面需要使用sqlite資料庫,只需要引入sqlite3.h標頭檔與sqlite3.lib就可以使用了。Sqlite 樣本程式1在vc ++ 中建立win32 Project sqlitesample,在嚮導中選擇Console程式,其他一概選為空白。引入sqlite.h 標頭檔。2 在 main中的源碼如下#include "stdafx.h"#include "../sqlitelib/sqlite3.h"#include "string.h"#pragma comment(lib, "../Debug/sqlitelib.lib") void doTest();int _tmain(int argc, _TCHAR* argv[]){ doTest(); return 0;}void doTest() { sqlite3* conn = NULL; const char* createTableSQL ="CREATE TABLE TESTTABLE (int_col INT, float_col REAL, string_col TEXT)"; const char* selectSQL = "SELECT * FROM TESTTABLE WHERE 1 = 0"; sqlite3_stmt* stmt = NULL; int len = strlen(createTableSQL); int result = sqlite3_open("E:\\Hbb0b0\\sqlitedb\\mytest.db",&conn); sqlite3_stmt* stmt2 = NULL; //1. 開啟資料庫 if (result != SQLITE_OK) { sqlite3_close(conn); return; } //2. 準備建立資料表,如果建立失敗,需要用sqlite3_finalize釋放sqlite3_stmt對象,以防止記憶體泄露。 if (sqlite3_prepare_v2(conn,createTableSQL,len,&stmt,NULL) != SQLITE_OK) { if (stmt) sqlite3_finalize(stmt); sqlite3_close(conn); return; } //3. 通過sqlite3_step命令執行建立表的語句。對於DDL和DML語句而言,sqlite3_step執行正確的傳回值 //只有SQLITE_DONE,對於SELECT查詢而言,如果有資料返回SQLITE_ROW,當到達結果集末尾時則返回 //SQLITE_DONE。 if (sqlite3_step(stmt) != SQLITE_DONE) { sqlite3_finalize(stmt); sqlite3_close(conn); return; } //4. 釋放建立表語句對象的資源。 sqlite3_finalize(stmt); printf("Succeed to create test table now.\n"); //5. 構造查詢表資料的sqlite3_stmt對象。 if (sqlite3_prepare_v2(conn,selectSQL,strlen(selectSQL),&stmt2,NULL) != SQLITE_OK) { if (stmt2) sqlite3_finalize(stmt2); sqlite3_close(conn); return; }}3 編譯運行後可以安裝firefox sqlite manager 查看最終產生mytest.db .對應的表已經產生成功。
3 編譯運行後可以安裝firefox sqlite manager 查看最終產生mytest.db .
對應的表已經產生成功。