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; }