VC++操作SQLite簡(jiǎn)單實(shí)例
對(duì)于很多程序員來說,SQLite并不陌生。SQLite 是一款主要用于嵌入式的開源數(shù)據(jù)庫(kù),可集成在自己的桌面程序中,也可替代Access作為后臺(tái)數(shù)據(jù)庫(kù)。SQLite 支持多數(shù)SQL92標(biāo)準(zhǔn),例如:索引、限制、觸發(fā)和查看支持,支持 NULL、INTEGER、REAL、TEXT 和 BLOB 數(shù)據(jù)類型,支持事務(wù)。以下是一些SQLite的簡(jiǎn)單使用。
//建立數(shù)據(jù)庫(kù) C:\sqlite-3_6_11> sqlite3.exe dbname.db
建立數(shù)據(jù)庫(kù)的時(shí)候sqlite3.exe后面跟數(shù)據(jù)庫(kù)文件名
//創(chuàng)建數(shù)據(jù)表
sqlite> create table users(userid varchar(20) PRIMARY KEY,
...> age int,
...> birthday datetime);
//添加記錄
insert into users values('wang',20,'1989-5-4');
insert into users values('li',22,'1987-11-16');
//查詢記錄
select * from users order by birthday;
//刪除記錄
delete from users where userid='wang';
//退出
sqlitesqlite> .exit
SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)是存貯在 "sqlite_master" 表中,具體命令可以輸入.help查看或參考SQLite幫助文檔。
在VC下使用SQLite的簡(jiǎn)單例子:
#include "../sqlite3_lib/sqlite3.h" //請(qǐng)以你的地址為準(zhǔn)
#pragma comment(lib, "../sqlite3_lib/sqlite3.lib")//請(qǐng)以你的地址為準(zhǔn)
static int _sql_callback(void * notused, int argc, char ** argv, char ** szColName)
{
int i;
for ( i=0; i < argc; i++ )
{
printf( "%s = %s\n", szColName[i], argv[i] == 0 ? "NUL" : argv[i] );
}
return 0;
}
int main(int argc, char * argv[])
{
const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
const char * sSQL2 = "insert into users values('wang',20,'1989-5-4');";
const char * sSQL3 = "select * from users;";
sqlite3 * db = 0;
char * pErrMsg = 0;
int ret = 0;
//連接數(shù)據(jù)庫(kù)
ret = sqlite3_open("./test.db", &db);
if ( ret != SQLITE_OK )
{
fprintf(stderr, "不能打開數(shù)據(jù)庫(kù): %s", sqlite3_errmsg(db));
return(1);
}
printf("數(shù)據(jù)庫(kù)連接成功!\n");
//執(zhí)行SQL建立數(shù)據(jù)庫(kù)
sqlite3_exec( db, sSQL1, 0, 0, &pErrMsg );
if ( ret != SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", pErrMsg);
sqlite3_free(pErrMsg);
}
//插入記錄
sqlite3_exec( db, sSQL2, 0, 0, &pErrMsg);
//查詢數(shù)據(jù)表
sqlite3_exec( db, sSQL3, _sql_callback, 0, &pErrMsg);
//關(guān)閉數(shù)據(jù)庫(kù)
sqlite3_close(db);
db = 0;
return 0;
}
相關(guān)文章
C語言中結(jié)構(gòu)體(struct)的幾種初始化方法
相信大家都知道struct結(jié)構(gòu)體是C語言中非常重要的復(fù)合類型,初始化的方法很多,那么小編下面對(duì)這些方法進(jìn)行總結(jié),便于自己和大家以后查閱,有需要的可以參考借鑒。2016-08-08
C++11?condition_variable條件變量的用法說明
這篇文章主要介紹了C++11?condition_variable條件變量的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
C#?CLR學(xué)習(xí)?C++使用namespace實(shí)例詳解
這篇文章主要為大家介紹了C#?CLR學(xué)習(xí)?C++使用namespace實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
C++實(shí)現(xiàn)LeetCode(46.全排列)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(46.全排列),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

