VS2010如何引用SQLite3?
步骤:
1. 新建文件夹 SQLite3-lib。把sqlite3.def和sqlite3.dll放在同一个文件夹 SQLite3-lib下。
例如:I:\SQLite3-lib
2. 从VS2010的安装目录下 F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin找到lib.exe和link.exe放到步骤1的文件夹 SQLite3-lib下。从VS2010的安装目录下 F:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE找到mspdb100.dll放到步骤1的文件夹 SQLite3-lib下。
3. 打开cmd窗口,转到上述的文件夹 SQLite3-lib下。输入命令(1)I:(2)cd I:\SQLite3-lib
(3)LIB /DEF:sqlite3.def /machine:IX86。
这样我们就得到了两个新的文件:
sqlite3.exp和sqlite3.lib
https://img-blog.csdn.net/20171220204654420?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbmd4aWE2MjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
Win32 控制台应用程序,如何连接sqlite3的数据库,并对此数据库操作??
步骤:
1. 把sqlite3.dll和sqlite3.lib在项目的Debug中加入。
2. 把sqlite3.h在项目的Debug中加入。
开始编写个程序来测试下我们的动态链接库.
在VC下新建一个”Win32控制台应用程序”,工程命名
为: SQLite3Test
SQLite3Test.cpp源代码如下:
// SQLite3Test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
#define _DEBUG_
int _tmain(int argc, _TCHAR* argv[])
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("ZX.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc )
{
fprintf(stderr, "不能打开: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return (1);
}
else
printf("打开 sqlite3 数据库!\ ^-^ \n");
//创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
char *sql = " create table zxData(ID INTEGER PRIMARY KEY,zxID INTEGER,zxNum INTEGER,Time VARCHAR(12),zxParameter REAL);" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
#endif
//插入数据
sql = "insert into \"zxData\" values(NULL , 1 , 1 , '20171207', 20.9 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sql = "insert into \"zxData\" values(NULL ,2 , 2 , '20171207', 30.4 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sql = "insert into \"zxData\" values(NULL , 3, 3 , '20171207', 40.4 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
int nrow = 0, ncolumn = 0;
char **azResult; //二维数组存放结果
//查询数据
sql = "select * from zxData ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
int i = 0 ;
printf( "row:%d column=%d \n" , nrow , ncolumn );
printf( "\nThe result of querying is : \n" );
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
printf( "azResult[%d] = %s\n", i , azResult[i] );
//删除数据
sql = "delete from zxData where zxID = 1 ;" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
#endif
sql = "select * from zxData ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
printf( "\n\n\n\nrow:%d column=%d " , nrow , ncolumn );
printf( "\nAfter deleting , the result of querying is : \n" );
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
printf( "azResult[%d] = %s\n", i , azResult[i] );
//释放掉 azResult 的内存空间
sqlite3_free_table( azResult );
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
#endif
sqlite3_close(db); //关闭数据库
return 0;
}
注意:
在资源文件中引入文件夹 SQLite3-lib中的sqlite3.lib。
这个程序简单实现对数据库的管理,
包括创建数据库、创建表格、插入数据、查询数据、删除数据等。