VC++操作SQLite简单实例
对于很多程序员来说,SQLite并不陌生。SQLite是一款主要用于嵌入式的开源数据库,可集成在自己的桌面程序中,也可替代Access作为后台数据库。SQLite支持多数SQL92标准,例如:索引、限制、触发和查看支持,支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,支持事务。以下是一些SQLite的简单使用。
//建立数据库 C:\sqlite-3_6_11>sqlite3.exedbname.db
建立数据库的时候sqlite3.exe后面跟数据库文件名
//创建数据表
sqlite>createtableusers(useridvarchar(20)PRIMARYKEY,
...>ageint,
...>birthdaydatetime);
//添加记录
insertintousersvalues('wang',20,'1989-5-4');
insertintousersvalues('li',22,'1987-11-16');
//查询记录
select*fromusersorderbybirthday;
//删除记录
deletefromuserswhereuserid='wang';
//退出
sqlitesqlite>.exit
SQLite数据库的数据结构是存贮在"sqlite_master"表中,具体命令可以输入.help查看或参考SQLite帮助文档。
在VC下使用SQLite的简单例子:
#include"../sqlite3_lib/sqlite3.h"//请以你的地址为准
#pragmacomment(lib,"../sqlite3_lib/sqlite3.lib")//请以你的地址为准
staticint_sql_callback(void*notused,intargc,char**argv,char**szColName)
{
inti;
for(i=0;i<argc;i++)
{
printf("%s=%s\n",szColName[i],argv[i]==0?"NUL":argv[i]);
}
return0;
}
intmain(intargc,char*argv[])
{
constchar*sSQL1="createtableusers(useridvarchar(20)PRIMARYKEY,ageint,birthdaydatetime);";
constchar*sSQL2="insertintousersvalues('wang',20,'1989-5-4');";
constchar*sSQL3="select*fromusers;";
sqlite3*db=0;
char*pErrMsg=0;
intret=0;
//连接数据库
ret=sqlite3_open("./test.db",&db);
if(ret!=SQLITE_OK)
{
fprintf(stderr,"不能打开数据库:%s",sqlite3_errmsg(db));
return(1);
}
printf("数据库连接成功!\n");
//执行SQL建立数据库
sqlite3_exec(db,sSQL1,0,0,&pErrMsg);
if(ret!=SQLITE_OK)
{
fprintf(stderr,"SQLerror:%s\n",pErrMsg);
sqlite3_free(pErrMsg);
}
//插入记录
sqlite3_exec(db,sSQL2,0,0,&pErrMsg);
//查询数据表
sqlite3_exec(db,sSQL3,_sql_callback,0,&pErrMsg);
//关闭数据库
sqlite3_close(db);
db=0;
return0;
}