VS2010如何引用并操作SQLite3? - Go语言中文社区

VS2010如何引用并操作SQLite3?


VS2010如何引用SQLite3?

步骤:

1. 新建文件夹 SQLite3-lib。把sqlite3.def和sqlite3.dll放在同一个文件夹 SQLite3-lib下。

例如:I:SQLite3-lib

2. VS2010的安装目录下 F:Program Files (x86)Microsoft Visual Studio 10.0VCbin找到lib.exe和link.exe放到步骤1的文件夹 SQLite3-lib下。从VS2010的安装目录下 F:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE找到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.dllsqlite3.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, "不能打开: %sn", 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] = %sn", 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( "nnnnrow:%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] = %sn", 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。

 


这个程序简单实现对数据库的管理,
包括创建数据库、创建表格、插入数据、查询数据、删除数据等。

 


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhangxia621/article/details/78857374
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-26 21:25:26
  • 阅读 ( 903 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢