vs2010下vc调用sqlite3数据库以及配置
来源:互联网 发布:淘宝围巾店 编辑:程序博客网 时间:2024/06/02 02:56
对于在vs2010下,使用mfc来操作sqlite3数据库,首先要做的就是编译生成sqlite3.lib,sqlite3.dll这2个文件,sqlite3.dll这个文件在官方网站上可以下的到,官方网站:http://www.sqlite.org/download.html 。我自己写这文章的时候用的是sqlite-amalgamation-201412160020,sqlite-shell-win32-x86-3080704。具体用到的时候可以去官方下载最新的就行。
下载完成之后,接下来就是要编译生成lib文件,具体请参考http://www.cnblogs.com/djcsch2001/articles/3028086.html,这篇文章里面提供了2种方法,经测试是可以的,所以这步骤参阅这里。生成了lib文件,有了dll文件,头文件,就是调用的问题了,这跟调用其他dll是一样的,在此就不多说。下面附上我的测试代码,经供学习参考,算是入门。
#include "stdafx.h"
#include <stdlib.h>
#include "sqlite3.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"sqlite3.lib")
int sqlite3_exec_callback(void *data, int nColumn,
char **colValues, char **colNames);
int sqlite3_exec_callback(void *data, int nColumn, char **colValues, char **colNames)
{
for (int i = 0; i < nColumn; i++)
{
printf("%s\t", colValues[i]);
}
printf("\n");
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
//--------------------------------------------------------------test1
//int rc;
//int i, nrows, ncols, tr;
//char *errmsg = NULL;
//char **results;
//sqlite3 *db = NULL;
//rc = sqlite3_open("demodb", &db);
//if (rc)
//{
// fprintf(stderr, "can't open db!/n", sqlite3_errmsg(db));
// sqlite3_close(db);
// exit(1);
//}
//else
//{
// printf("db open successfully!/n");
//}
//sqlite3_get_table(db,"select * from clients;",&results,&nrows,&ncols,&errmsg);
//printf("DB has %d rows and %d cols/n/n",nrows,ncols);
//tr=(nrows+1)*ncols;
//for(i=0;i<tr;++i) //输出查询结果
//{
// printf("results[%d]= %s/n",i,results[i]); //此处可以自己定义输出格式,
//}
//sqlite3_free_table(results); //free
//sqlite3_close(db);
//int a;
//scanf("%d",&a);//没有此行代码,运行窗口出现后会马山消失。
//return 0;
//----------------------------------------------------------------------test2
sqlite3 * conn = NULL;
char * err_msg = NULL;
char sql[200] = "";
// 打开数据库, 创建连接
if(sqlite3_open("test.db", &conn) != SQLITE_OK)
{
printf("无法打开!");
}
////插入数据
//sprintf(sql, "CREATE TABLE test_for_cpp \
// (id int, name varchar(20), age int)");
//if (sqlite3_exec(conn, sql, NULL, NULL, &err_msg) != SQLITE_OK)
//{
// printf("操作失败,错误代码: %s", err_msg);
// exit(-1);
//}
//添加10条记录
for (int i = 0; i < 10; i++)
{
// 执行SQL
sprintf(sql, "INSERT INTO test_for_cpp \
(id, name, age) VALUES \
(%d, '%s', %d)", i, "testPeople", i);
if (sqlite3_exec(conn, sql, NULL, NULL, &err_msg) != SQLITE_OK)
{
printf("操作失败,错误代码: %s", err_msg);
exit(-1);
}
}
//查询数据
sprintf(sql, "SELECT * FROM test_for_cpp");
sqlite3_exec(conn, sql, &sqlite3_exec_callback, 0, &err_msg);
// 关闭连接。
if (sqlite3_close(conn) != SQLITE_OK)
{
printf("无法关闭,错误代码: %s\n", sqlite3_errmsg(conn));
exit(-1);
}
printf("操作成功!\n");
char a;
cout<<"请输入一个字符,若要退出程序,请输入!:"<<endl;
cin>>a;
while(a != '!')
{
cout<<a<<endl;
cin>>a;
}
cout<<"退出程序!"<<endl;
return 0;
}
- vs2010下vc调用sqlite3数据库以及配置
- vc下配置sqlite3
- vs2010下配置C/C++调用Mysql数据库
- VS2010下编译sqlite3
- VS2010下编译sqlite3
- VS2010下编译sqlite3
- VS2010下编译sqlite3
- [cocos2d]调用sqlite3数据库
- vs2010 vc++ 调用dll
- VC下OpenGL配置以及glut配置
- VC下OpenGL配置以及glut配置
- VC下OpenGL配置以及glut配置
- Linux下数据库sqlite3
- vs2010 vc++ 目录配置
- VS2010下Dll的二次封装以及显示调用
- vs2010下vc SetMenu
- PowerBuilder9.0 调用sqlite3数据库
- VS2010下SQLite3生成lib库文件
- Linux服务器性能评估(4)
- Ubuntu 12.04 安装有道词典
- cocos2d-x lua 工作记录
- Linux 信号
- 通用css样式
- vs2010下vc调用sqlite3数据库以及配置
- 得到UIWebView内视频播放器弹出和关闭的通知
- iOS 之UIScrollView的常用方法
- spring配置好后,写入数据时空指针异常,objectFactory
- 云计算等四大领域正掀起商业和社会革命
- iOS 获取当前正在显示的ViewController
- 对Windows安全软件的思考
- 在windows下搭建SVN服务器
- 07func_var