SQLite 是一款非常適合嵌入式應(yīng)用的數(shù)據(jù)庫(kù),小巧、快速和可靠。真正的開(kāi)源免費(fèi),不保留任何版權(quán)( Public Domain )。它無(wú)需運(yùn)行額外的服務(wù)器進(jìn)程,用它來(lái)開(kāi)發(fā)桌面數(shù)據(jù)庫(kù)的應(yīng)用,乎比 MS Access 更顯得簡(jiǎn)潔。 【一 . 生成 SQLite 庫(kù)文件】 新建 “C:\mylibs\
SQLite是一款非常適合嵌入式應(yīng)用的數(shù)據(jù)庫(kù),小巧、快速和可靠。真正的開(kāi)源免費(fèi),不保留任何版權(quán)(Public Domain)。它無(wú)需運(yùn)行額外的服務(wù)器進(jìn)程,用它來(lái)開(kāi)發(fā)桌面數(shù)據(jù)庫(kù)的應(yīng)用,似乎比MS Access更顯得簡(jiǎn)潔。
【一. 生成SQLite庫(kù)文件】
新建“C:\mylibs\libSQLite3”目錄,將它作為我們的當(dāng)前工作目錄。
(1)在SQLite的官方網(wǎng)站下載
源代碼 SQLite 3.8.0.2
http://www.sqlite.org/2013/sqlite-amalgamation-3080002.zip
DLL庫(kù)文件
http://www.sqlite.org/2013/sqlite-dll-win32-x86-3080002.zip
命令行控制平臺(tái)
http://www.sqlite.org/2013/sqlite-shell-win32-x86-3080002.zip
解壓縮其中的庫(kù)文件中“sqlite3.def”和“sqlite3.dll”兩個(gè)文件到“C:\mylibs\libSQLite3\”;
打開(kāi)“命令提示符”窗口,用LIB命令生成用于連接(LINK)使用的lib文件:
CD C:\mylibs\libSQLite3
LIB /DEF:sqlite3.def /machine:IX86
這樣將生成“sqlite3.lib”和“sqlite3.exp”兩個(gè)文件。
(2)檢查文件清單,此時(shí)“C:\mylibs\libSQLite3\”目錄下應(yīng)該有如下五個(gè)文件:
sqlite3.def
sqlite3.dll
sqlite3.exp
sqlite3.h
sqlite3.lib
【二. 編寫(xiě)示例程序】
(1)打開(kāi)VC6.0,創(chuàng)建一個(gè)空的“Win32控制臺(tái)應(yīng)用程序”項(xiàng)目,名為“sqlitedemo”,在“D:\VCStudio\sqlitedemo”目錄下。
(2)Project→Settings,在Link選項(xiàng)卡,“Category”選擇“General”,在“Object/library
modules”的最后填入“sqlite3.lib”,注意用空格分隔各項(xiàng)。
(3)將“l(fā)ibSQLite3”目錄及其包含的文件復(fù)制到我們的工程目錄。再將“l(fā)ibSQLite3”目錄下的“sqlite3.lib”和“
sqlite3.dll”文件移動(dòng)到工程目錄下。
這樣,在需要用到“sqlite”庫(kù)的CPP文件頂部,加入一行:
#include "sqlite3.h"
然后,就可以在文件中調(diào)用sqlite3.dll里面的所有函數(shù)了。
(4)建立示例數(shù)據(jù)庫(kù)。打開(kāi)控制臺(tái) sqlite3.exe,生成app.db:
sqlite> CREATE TABLE t1(c1 TEXT);
sqlite> INSERT INTO t1 VALUES('Hello World!');
sqlite> SELECT * FROM t1;
Hello World!
sqlite> .exit
復(fù)制app.db到工程目錄下。
(5)新建“C++源文件”,名為“sqlitedemo.cpp”,選擇“加入工程”,編寫(xiě)代碼
#include
#include
#include ".\libSQLite3\sqlite3.h"
static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName)
{
int i;
for ( i=0; i
{
printf( "%s = %s\n", aszColName[i], argv[i] == 0 ? "NUL" : argv[i] );
}
return 0;
}
int main(int argc, char * argv[])
{
const char * sSQL = "select * from t1;";
char * pErrMsg = 0;
int ret = 0;
sqlite3 * db = 0;
ret = sqlite3_open("./app.db", &db);
if ( ret != SQLITE_OK )
{
fprintf(stderr, "Could not open database: %s", sqlite3_errmsg(db));
exit(1);
}
printf("Successfully connected to database\n");
sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg );
if ( ret != SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", pErrMsg);
sqlite3_free(pErrMsg);
}
sqlite3_close(db);
db = 0;
return 0;
}
按“Ctrl+F5”運(yùn)行,結(jié)果:
Successfully connected to database
c1 = Hello World!
Press any key to continue
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com