sqlite学习

(一)使用官网编译好的sqlite 的dll(for Windows)

1.) 用命令 lib /def:sqlite3.def /out:sqlite3.lib 生成导入库 sqlite3.lib

2.) 新建一个win32 console project

3.) 写一个简单的测试函数, 就在main函数里写就OK

4.) 注意包含头文件sqlite3.h

5.) 在工程设置里加入对sqlite3.lib的引用

6.) 将编译好的程序和sqlite3.dll放置在同一目录下

 

.lib文件只用于链接程序,程序编译好发布后就不用该文件了,dll文件是程序运行所必需的(当然不必非要和应用程序放在同一目录下)

 

(二)自己编译dll(Windows)

 

1.) 下载源码, 先是下载了这个版本sqlite-3.7.2.tar.gz (3.16 MiB) ,后来发现这个版本最好在Linux下编译,因为有很多的代码需要依靠Linux下的编译工具自动生成(当然在Windows下可以用MinGW),因此又下载了这个版本sqlite-amalgamation-3_7_2.zip(1.15 MiB)

 

2.) 在VC下新建一个project,将解压后得到的源文件加入工程,不要将shell.c加进去; 添加.def文件

 

3.) 编译

 

开始时编译有错误: sqlite3.def : error LNK2001: 无法解析的外部符号 sqlite3_column_database_name16

在网上查找原因,知道需要增加一个预定义宏 SQLITE_ENABLE_COLUMN_METADATA

 

When this C-preprocessor macro is defined, SQLite includes some additional APIs that provide convenient access to meta-data about tables and queries. The APIs that are enabled by this option are:

* sqlite3_column_database_name()
* sqlite3_column_database_name16()
* sqlite3_column_table_name()
* sqlite3_column_table_name16()
* sqlite3_column_origin_name()
* sqlite3_column_origin_name16()
* sqlite3_table_column_metadata()

原来是只有当启用了这个宏后,c代码中才会后这几个函数的定义。

 

 

 

(三) 使用sqlite3命令行工具

常用命令:

.tables

.schema

.dump 可以导出数据库的所有对象, 在shell模式下, 默认导出到屏幕, 如果想将对象导出到文件可以先用命令.output 设置输出到文件再调用dump命令,比如

     >.output file.sql

     >.dump

     >.output stdout

 .dump 命令后面可以有表名作为参数, 这样就可以不用将数据库里的所有对象都dump出来了。

 

.show命令可以显示用户对shell所作的所有设置,比如指定的分隔符、指定的输出格式等。

.separator命令可以用来更改分隔符。

 

.read 命令用来向数据库导入数据, .read [filename] , read的文件应该是以前用dump命令导出的文件。

.import 命令也可以用来向数据库导入数据,.import [filename] [tablename] , import的file应该是一个csv(comma-separated values)文件

 

.echo

.nullvalue

.mode  预定义

.promt

.headers

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值