来源:蜘蛛抓取(WebSpider)
时间:2016-09-18 05:48
标签:
bde数据库驱动 win7
c++连接数据库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
c++连接数据库
上传于||暂无简介
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢和数据库连接_百度知道博客访问: 1410960
博文数量: 301
博客积分: 5547
博客等级: 大校
技术积分: 3614
注册时间:
hello world.
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
&&&& 在工作中,我总是使用编译后sqlite3可执行程序,进行数据库的创建;其实我们操作sqlite数据库,也可是使用源代码级别的形式去操作数据库。我在网上查找,对部分代码进行修改,添加上注释,形式如下代码,其中包含对数据表的创建,添加数据,查询数据功能,代码如下:#include <stdio.h>
#include <sqlite3.h>
//查询的回调函数声明
int select_callback(void * data, int col_count, char ** col_values, char ** col_Name);
int main(int argc, char * argv[])
&&const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
&&char * pErrMsg = 0;
&&int result = 0;
&&// 连接数据库
&&sqlite3 * db = 0;
&&int 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, "SQL error: %s\n", pErrMsg);
&&&&sqlite3_free(pErrMsg);
&&// 执行插入记录SQL
&&result = sqlite3_exec( db, "insert into users values('张三',20,'');", 0, 0, &pErrMsg);
&&if(result == SQLITE_OK){
&&&&printf("插入数据成功\n");
&&result = sqlite3_exec( db, "insert into users values('李四',20,'');", 0, 0, &pErrMsg);
&&if(result == SQLITE_OK){
&&&&printf("插入数据成功\n");
&&// 查询数据表
&&printf("查询数据库内容\n");
&&sqlite3_exec( db, "select *", select_callback, 0, &pErrMsg);
&&// 关闭数据库
&&sqlite3_close(db);
&&printf("数据库关闭成功!\n");
&&return 0;
int select_callback(void * data, int col_count, char ** col_values, char ** col_Name)
&&// 每条记录回调一次该函数,有多少条就回调多少次
&&for( i=0; i < col_count; i++){
&&&&printf( "%s = %s\n", col_Name[i], col_values[i] == 0 ? "NULL" : col_values[i] );
&&return 0;
}编写好代码后,我们需要进行编译。我使用的ubuntu10.04自带的gcc编译器gcc4.4.3进行编译。如果你使用 $ gcc sqlitetest.c进行编译时,会出现如下的错误:/tmp/ccyxvdme.o: In function `main':sqlitetest.c:(.text+0x31): undefined reference to `sqlite3_open'sqlitetest.c:(.text+0x48): undefined reference to `sqlite3_errmsg'sqlitetest.c:(.text+0xa5): undefined reference to `sqlite3_exec'sqlitetest.c:(.text+0xd6): undefined reference to `sqlite3_free'sqlitetest.c:(.text+0x102): undefined reference to `sqlite3_exec'sqlitetest.c:(.text+0x12e): undefined reference to `sqlite3_exec'sqlitetest.c:(.text+0x15a): undefined reference to `sqlite3_exec'sqlitetest.c:(.text+0x166): undefined reference to `sqlite3_close'collect2: ld returned 1 exit status这是因为gcc找不到定义sqlite3_open等等的头文件,经过在网上查找资料,找到了解决方法,使用如下的方法进行编译:$ gcc -o hello -L /usr/local/sqlite-autoconf-3070400/lib -I/usr/local/sqlite-autoconf-307040/include sqlitetest.c& -lsqlite3上面的编译主要意义时-L 代码你安装sqlite3类库所在的路径, -I代表安装sqlite3的头文件路径 而-l表示可执行程序的名称经过上面的编译,即可成功。执行结果如下:~$ ./hello 数据库连接成功!插入数据成功插入数据成功查询数据库内容userid = 张三age = 20birthday = userid = 李四age = 20birthday = 数据库关闭成功!&
阅读(8971) | 评论(0) | 转发(4) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。MFC中,如何连接sqlite3的数据库,并对此数据库操作??_百度知道数据库连c++_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据库连c++
上传于||文档简介
&&把​数​据​库​当​作​文​件​使​用​”​
​
​那​你​需​要​的​是​一​款​桌​面​型​数​据​库​,​而​不​是​S​Q​L00​这​类​需​要​安​装​大​堆​文​件​和​系​统​服​务​才​能​使​用​的​数​据​库​。​
​
​
​
​你​可​以​使​用​A​c​c​e​s​s​,​s​q​l​i​t​e​之​类​随​带​随​走​的​数​据​库​。​根​据​易​用​性​,​你​就​用​A​c​c​e​s​s​吧​。​
​
​
​
​无​论​什​么​开​发​工​具​在​W​i​n​d​o​w​s​对​A​c​c​e​s​s​的​支​持​都​很​好​,​都​有​现​成​的​控​件​可​用​,​你​填​填​连​接​字​符​串​就​行​了​。​
​
​
​
​下​面​这​个​是​不​依​赖​任​何​控​件​的​访​问​方​式​,​来​自​M​S​D​N​。​使​用​的​C​O​M​技​术​。​
​
​
​
​
​
​
​
​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=​=
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢