SQLite在VC下的使用

2021-06-07 17:10:12 字數 3951 閱讀 5608

sqlite在vc下的使用**) 

一、sqlite簡介 

sqlite 是用c語言編寫的開源資料庫,主要用於嵌入式,你也可以把它整合在自己的桌面程式中,也有人將其替代access,用作後台資料庫。 

sqlite 支援多數sql92標準,例如:索引、限制、觸發和檢視支援。 

支援 null、integer、real、text 和 blob 資料型別,支援事務。 

包括:linux,mac os x, windows下的已編譯檔案以及源**、幫助文件。 

vc中使用sqlite 

1.將sqlite3.h(d:\sqlite-amalgamation-3_6_23.zip)拷貝到c:\program files\microsoft visual studio\vc98\include目錄下,這時編譯可通過,但鏈結錯誤,因為沒有lib檔案() 

2.啟動乙個命令列程式,進入vc的安裝目錄c:\program files\microsoft visual studio\vc98\bin,在這個目錄下面有乙個lib.exe檔案,使用它就能生成sqlite3.lib檔案,將sqlite3.def檔案放到相同目錄,或者絕對路徑也可以, 然後在命令列輸入如下命令: 

lib /machine:ix86 /def:sqlite3.def 

該命令生成兩個檔案:sqlite3.lib和sqlite3.exp 

執行該命令時,如果提示找不到mspdb60.dll檔案,可從其它目錄拷貝至bin目錄下 

3.將生成的sqlite3.lib拷貝到lib目錄下,將sqlite3.dll拷貝到c:\winnt\system32目錄下 

4.將sqlite3.lib加入到工程鏈結中,project->settings,link選項卡,object/library modules最後添入sqlite3.lib 

d:\sqlitedll-3_6_23裡有.dll和.def檔案 

生成的lib在bin下 

這時以下程式便可通過vc編譯鏈結並執行: 

#include

#include

#include

int column_names_printed = 0; 

void print_row(int n_values, char** values) 

printf("\n"); 

} int print_result(void* data, int n_columns, char** column_values, char** column_names) 

print_row(n_columns, column_values); 

return 0; 

} int main() 

else printf("open test.db successfully!\n"); 

rc = sqlite3_exec(db, "begin transaction;", null, null, null); 

rc = sqlite3_exec(db, "create table students(number varchar(10), name varchar(10), \ 

*** varchar(6), age varchar(2));", null, null, null); 

rc = sqlite3_exec(db, "insert into students values('00001', 'mary', 'female', '15');\ 

insert into students values('00002', 'john', 'male', '16');\ 

insert into students values('00003', 'mike', 'male', '15');\ 

insert into students values('00004', 'kevin', 'male', '17');\ 

insert into students values('00005', 'alice', 'female', '14');\ 

insert into students values('00006', 'susan', 'female', '16');\ 

insert into students values('00007', 'christina', 'female', '15');\ 

insert into students values('00008', 'brian', 'male', '16');\ 

insert into students values('00009', 'dennis', 'male', '14');\ 

insert into students values('00010', 'daphne', 'female', '18');", 

null, null, &errmsg); 

column_names_printed = 0; 

rc = sqlite3_exec(db, "select students.* from students where ***='female';", print_result, null, &errmsg); 

column_names_printed = 1; 

printf("\n"); 

column_names_printed = 0; 

rc = sqlite3_exec(db, "select students.* from students where ***='male';", print_result, null, &errmsg); 

column_names_printed = 1; 

rc = sqlite3_exec(db, "commit transaction;", null, null, null); 

printf("error code: %d\n", rc); 

printf("error message: %s\n", errmsg); 

sqlite3_close(db); 

return 0; 

} 另外,在vc下編譯sqlite源**,出現can not find tcl.h 可以 去掉tclsqlite.c或者在這個檔案前面新增#define no_tcl 去掉tcl的支援 

三、sqlite的簡單使用 

3.1 建立資料庫 

c:\sqlite-3_6_11> sqlite3.exe dbname.db 

sqlite3.exe後面跟資料庫檔名,它是進入編譯階段的入口指令 

3.2 建立資料表 

sqlite> create table users(userid varchar(20) primary key, 

...> age int, 

...> birthday datetime); 

3.3 新增記錄 

insert into users values('wang',20,'1989-5-4'); 

insert into users values('li',22,'1987-11-16'); 

3.4 查詢記錄 

select * from users order by birthday; 

3.5 刪除記錄 

delete from users where userid='wang'; 

3.6 退出sqlite 

sqlite> .exit 

sqlite資料庫的資料結構是存貯在 "sqlite_master" 表中 

具體命令可以輸入 .help檢視或參考幫助文件 

四、編譯lib 

在dos命令列下: 

path = d:\program files\microsoft visual studio 9.0\vc\bin;%path% 

path = d:\program files\microsoft visual studio 9.0\common7\ide;%path% 

lib /def:sqlite3.def /machine:ix86 

SQLite在VC下的使用

一 sqlite簡介 sqlite 是用c語言編寫的開源資料庫,主要用於嵌入式,你也可以把它整合在自己的桌面程式中,也有人將其替代access,用作後台資料庫。sqlite 支援多數sql92標準,例如 索引 限制 觸發和檢視支援。支援 null integer real text 和 blob 資...

SQLite在VC下的使用

一 sqlite簡介 sqlite 是用c語言編寫的開源資料庫,主要用於嵌入式,你也可以把它整合在自己的桌面程式中,也有人將其替代access,用作後台資料庫。sqlite 支援多數sql92標準,例如 索引 限制 觸發和檢視支援。支援 null integer real text 和 blob 資...

SQLite在VC下的使用

自 http hi.baidu.com yeetoo blog item 2fde8813346efe836538db87.html 在vc中使用sqlite的例子 2007年09月26日 星期三 14 06 我打算在ponyse上把sqlite做為第乙個儲存 轉換資料 的資料庫,所以今天小試了一把...