zl程序教程

您现在的位置是:首页 >  后端

当前栏目

VC++操作SQLite简单实例

C++SQLite实例 操作 简单
2023-06-13 09:15:39 时间

对于很多程序员来说,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;
}