SQLite在VC下的使用

【配置环境】SQLite数据库安装和编译以及VS下C++访问SQLite数据库 SQLite数据库安装和编译,SQLite Expert可视化管理工具介绍和使用,Visual Studio下C++访问SQLite数据库 阅读详情
SQLite在VC下的使用(转)http://www.sqlite.com.cn/MySqlite/4/523.Html 
一、SQLite简介 
   SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。 
SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。 
支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,支持事务。 
二、下载SQLite 
  SQLite可以到官方站点下载 
  http://www.sqlite.org/download.html 
  包括:Linux,Mac OS X, Windows下的已编译文件以及源代码、帮助文档。 
  VC中使用sqlite 
   SQLite官方下载只提供给我们一个sqlite3.dll跟一个sqlite3.def文件,并没有提供用于VC++6.0的lib文件,可以利用sqlite3.def文件生成,步骤如下: 
  1.将sqlite3.h(D:\sqlite-amalgamation-3_6_23.zip)拷贝到C:\Program Files\Microsoft Visual Studio\VC98\Include目录下,这时编译可通过,但链接错误,因为没有LIB文件() 
  2.启动一个命令行程序,进入VC的安装目录C:\Program Files\Microsoft Visual Studio\VC98\Bin,在这个目录下面有一个LIB.exe文件,使用它就能生成sqlite3.lib文件,将sqlite3.def文件放到相同目录,或者绝对路径也可以, 然后在命令行输入如下命令: 
   LIB /MACHINE:IX86 /DEF:sqlite3.def 
  该命令生成两个文件:sqlite3.lib和sqlite3.exp 
   运行该命令时,如果提示找不到MSPDB60.DLL文件,可从其它目录拷贝至Bin目录下 
  3.将生成的sqlite3.lib拷贝到Lib目录下,将sqlite3.dll拷贝到C:\WINNT\system32目录下 
   4.将sqlite3.lib加入到工程链接中,Project->Settings,Link选项卡,Object/library modules最后添入sqlite3.lib 
D:\sqlitedll-3_6_23里有.dll和.def文件 
生成的lib在bin下 
这时以下程序便可通过VC编译链接并运行: 
#include <stdio.h> 
#include <stdlib.h> 
#include <sqlite3.h> 
int column_names_printed = 0; 
void print_row(int n_values, char** values) 
{ 
    int i; 
    for (i = 0; i < n_values; ++i) { 
        printf("%10s", values[i]); 
    } 
    printf("\n"); 
} 
int print_result(void* data, int n_columns, char** column_values, char** column_names) 
{ 
    if (!column_names_printed) { 
        print_row(n_columns, column_names); 
        column_names_printed = 1; 
    } 
    
    print_row(n_columns, column_values); 
   
   return 0; 
} 
int main() 
{ 
    sqlite3 *db=NULL; 
    char *errMsg = NULL; 
    int rc; 
    
    rc = sqlite3_open("test.db", &db); 
    if( rc ){ 
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); 
        sqlite3_close(db); 
        exit(1); 
    } 
    else printf("open test.db successfully!\n"); 
    
    rc = sqlite3_exec(db, "BEGIN TRANSACTION;", NULL, NULL, NULL); 
    rc = sqlite3_exec(db, "CREATE TABLE students(number varchar(10), name varchar(10), \ 
                           sex varchar(6), age varchar(2));", NULL, NULL, NULL); 
    rc = sqlite3_exec(db, "INSERT INTO students VALUES('00001', 'Mary', 'female', '15');\ 
                           INSERT INTO students VALUES('00002', 'John', 'male', '16');\ 
                           INSERT INTO students VALUES('00003', 'Mike', 'male', '15');\ 
                           INSERT INTO students VALUES('00004', 'Kevin', 'male', '17');\ 
                           INSERT INTO students VALUES('00005', 'Alice', 'female', '14');\ 
                           INSERT INTO students VALUES('00006', 'Susan', 'female', '16');\ 
                           INSERT INTO students VALUES('00007', 'Christina', 'female', '15');\ 
                           INSERT INTO students VALUES('00008', 'Brian', 'male', '16');\ 
                           INSERT INTO students VALUES('00009', 'Dennis', 'male', '14');\ 
                           INSERT INTO students VALUES('00010', 'Daphne', 'female', '18');", 
                           NULL, NULL, &errMsg); 
    
    column_names_printed = 0; 
    rc = sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='female';", print_result, NULL, &errMsg); 
    column_names_printed = 1; 
    printf("\n"); 
    column_names_printed = 0; 
    rc = sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='male';", print_result, NULL, &errMsg); 
    column_names_printed = 1; 
    
    rc = sqlite3_exec(db, "COMMIT TRANSACTION;", NULL, NULL, NULL); 
    
    printf("error code: %d\n", rc); 
    printf("error message: %s\n", errMsg); 
    sqlite3_close(db); 
    return 0; 
} 
另外,在vc下编译sqlite源代码,出现can not find tcl.h 可以 去掉tclsqlite.c或者在这个文件前面添加#define NO_TCL 去掉tcl的支持 
三、SQLite的简单使用 
3.1 建立数据库 
C:\sqlite-3_6_11> sqlite3.exe dbname.db 
sqlite3.exe后面跟数据库文件名,它是进入编译阶段的入口指令 
3.2 创建数据表 
sqlite> create table users(userid varchar(20) PRIMARY KEY, 
   ...> age int, 
   ...> birthday datetime); 
3.3 添加记录 
insert into users values('wang',20,'1989-5-4'); 
insert into users values('li',22,'1987-11-16'); 
3.4 查询记录 
select * from users order by birthday; 
3.5 删除记录 
delete from users where userid='wang'; 
3.6 退出sqlite 
sqlite> .exit 
SQLite数据库的数据结构是存贮在 "sqlite_master" 表中 
具体命令可以输入 .help查看或参考帮助文档 
四、编译LIB 
需要到SQLite网站下载sqlitedll-3_6_11.zip,以VS 2008为例: 
在DOS命令行下: 
PATH = D:\Program Files\Microsoft Visual Studio 9.0\VC\bin;%PATH% 
PATH = D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;%PATH% 
LIB /DEF:sqlite3.def /machine:IX86 
VC+MFC操作SQLite3数据库实战指南 本文还有配套的精品资源,点击获取 简介:本文将指导你如何使用Visual C++结合MFC库操作SQLite3数据库。SQLite3作为一个轻量级且自包含的SQL数据库引擎,适用于嵌入式和桌面应用。我们将详细说明如何在VC项目中集成SQLite3库,并演示通过VC实现数据库的连接、SQL语句的执行、数据的插入、查询、更新、删除以及关闭数据库等基本操作。实例代码将贯穿整个教学... 阅读详情

相关推荐

sqlite在VC6下面的DLL与LIB文件

sqlite3在vc6下面使用的dll与lib文件,已经完全验证过,请放心使用

SQLite在VC下的使用(转)

一、SQLite简介 SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,支持事务。二、下载SQLite SQLite可以到官方站点下载 http://www...

weixin_30776545的博客 262

vc++SQLite编程.zip_VC sqlite _sqlite vc_tonegdr_wince SQLite 编程_wi

Wince SQLite 数据库编程 工程文件CPP

如何在VC6下使用sqlite3

KIDx的sqlite3笔记   到http://www.sqlite.org/download.html下载:   解压后得到sqlite3.h,得到的其他文件这里不会用到下载第二个,解压后得到sqlite3.dll和sqlite3.def   下面要做的是:利用sqlite3.def生成sqlite3.lib ①把sqlite3.def放到VC6的LIB.exe所在目录,...

基德KID.1412 610

ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)

1、符号化显示: CAD数据加载进来有很多列表,包含了点【point】、线【polyline】、面【polygon】、标注数据【Annotation】等数据,本次实验我们需要用到的是面数据,也就是.dwgPolygong格式的数据。如下图所示: 把数据加载进来,然后在2处打开属性表,查看CAD数据的属性表,打开后可以发现【layer】图层表示就是地块的用地性质,它就是符号化显示的依据。 我们在数据上右键【属性】,打开图层属性,找到【符号系统】,选择类别中的【唯一值】,然后在【值字段】下拉选择【layer】,

yuanYW7556的博客 2万+

STM32 USART高级功能全解析:IrDA、DMA、硬件流控与低功耗唤醒

USART是嵌入式系统中最基础的串行通信外设,其核心原理在于同步/异步时序控制与数据帧收发机制。现代MCU如STM32通过深度集成IrDA调制解调、DMA直传通道、RS232/RS485硬件流控及Stop模式唤醒等扩展能力,显著提升通信可靠性、吞吐效率与能效比。其中,IrDA SIR采用RZI编码实现抗干扰红外传输,DMA通过TXE/RXNE事件驱动实现零CPU干预的连续数据流,而硬件流控(RTS/CTS/DE)和低功耗唤醒(WUF+UESM)则分别保障工业现场鲁棒性与电池级超长待机。本文围绕STM32平台

weixin_28922227的博客 211

VC6下SQLite数据库应用起步

系统环境: win7 + VC6.0 SQLite是一款非常适合嵌入式应用的数据库,小巧、快速和可靠。真正的开源免费,不保留任何版权(Public Domain)。它无需运行额外的服务器进程,用它来开发桌面数据库的应用,似乎比MS Access更显得简洁。 【一. 生成SQLite库文件】  新建“C:\mylibs\libSQLite3”目录,将它作为我们的当前工作目录。 

shexujia的专栏 782

Win11+Ubuntu18.04+Ubuntu20.04三系统安装与卸载

以下情况均为个人情况:1.插入启动 U 盘后,登录时可以按F12(拯救者Y7000,不同电脑不同)进入BIOS,选择从启动盘启动。2.。3.5.在win基础上,安装第一个Ubuntu系统后,系统启动界面类似如下第一张图,Ubuntu不显示版本号。安装第二个Ubuntu系统后,系统启动界面如下第二张图,如果想更改启动项的名称,可自行查阅相关资料。

weixin_61686291的博客 2541

如何使用VC6编译sqlite3

(一)---------------------------------------------------------------------------------------------引言:使用VC6编译sqlite-source-3_6_22的编译方法。一.创建Win32动态链接库工程1.打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:s

ychh_hjr的专栏 2190

Jev模型入门:从API接入到本地部署的完整实践指南

大模型的应用方式正从单一聊天窗口转向复杂的自动化工作流,而推理模型因具备指令跟随与结构化输出能力,成为构建Agent和数据处理管线的关键组件。Jev作为面向通用场景的推理模型,不仅提供了OpenAI兼容的API接口,还支持本地量化部署,兼顾隐私、可控性与长期成本。本文从模型定位出发,明确Jev与基座模型的差异,随后介绍密钥管理、API调用、参数调优,并深入演示基于Ollama与llama.cpp的本地部署流程,包括GGUF模型文件与chat template的匹配要点。针对实践中的常见问题,如密钥泄露、ma

weixin_29057237的博客 359

RK3399外设驱动之MIPI

RK3399外设驱动之MIPI 文章目录RK3399外设驱动之MIPIMIPI命令解析入口代码mipi显示配置实例rk3399mipi驱动rk mipi驱动注册过程rk32_mipi_dsi.c解析 内核版本 Linux4.4 平台 rk3399 作者 nineyole MIPI命令解析入口代码 MIPI的入口代码如下:kernel\drivers\video\rockchip\screen\lcd_mipi.c static int __init rk_mipi_screen_in

学无止境 2230

VC6下编译与使用SQLite3

VC6下编译与使用SQLite3 关键词: VC6下编译与使用SQLite                                           VC6下编译与使用SQLite3     在VC6中编译与使用SQLite3是件非常简单的事,主要有下载SQLite3包、编译生成Lib文件、在工程中使用SQLite3等步骤;现将这些步骤说明如下:   一、下载SQL

penjie0418的专栏 858

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

VC2005 +SQLite 3.6.3 编译、测试开发手记

<br />http://www.cnblogs.com/giszhang/articles/1307509.html<br />VC2005 +SQLite 3.6.3 编译、测试开发手记<br />偶然的机会对SQLite有了兴趣,花了半天的时间小小研究了一下,包括VC2005环境下SQLite的编译,开发测试等。<br />初次接触,只是测试了基本的数据库操作功能,更多的高级功能有待以后继续深入研究,废话少说,言归正传。<br />现在SQLite的最新版本是 V3.6.3,发布于2008年9月22,

WINCOL的专栏 1267

YOLOv11官方代码库与预训练模型下载:介绍Ultralytics官方GitHub及模型权重(yolov11n.pt, yolov11s.pt等)

本文介绍了Ultralytics官方GitHub仓库和YOLOv11预训练模型。Ultralytics仓库是YOLO系列算法的官方实现,包含YOLOv11最新代码、预训练模型、文档和工具。仓库采用清晰的代码结构和活跃的更新策略,支持全流程开发。YOLOv11提供了5种不同规模的模型变体(YOLOv11n/s/m/l/x),在精度、速度和模型大小间权衡,适用于从移动设备到高精度检测等不同场景。各模型在COCO数据集上预训练,可直接使用或微调,满足多样化应用需求。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 5836

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

目录 一、Autosar COM Module 二、Autosar BswM Module 三、Autosar EcuM Module 四、Autosar DCM Module 五、Autosar DEM Module 六、其它Module陆续推出 欢迎大家订阅《Autosar_BSW高阶配置》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费,献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏...

「汽车电子助手」的博客 4万+

VC6.0中配置使用Sqlite3

1.在http://www.sqlite.org/download.html下载sqlite-dll-win32-x86-3071000.zip。 2.进入VC安装文件目录,(绿色版的VC没有LIB.EXE,我是重新安装的)执行以下命令: 系统报错说我缺少mspdb60.dll这个动态链接库。 (在你自己的系统中或者网上找一个这个文件放到哪个目录下就可以了) 也就是将这

天 下 3187

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SQLite在VC环境下的使用

SQLite在VC环境下的使用涉及到单例模式、SQLite的C++接口、编码转换等,这里提供一个自以为比较完善的解决方案以供参考,欢迎拍砖指导。 注:编程环境VS2012,以动态链接方式使用SQLite(参考20110512 SQLite下载与SQLite.lib生成),本文也没有考虑多线程的问题。

pigautumn的专栏 6358

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: VC++ OCX 控件注册
下一篇: sqlite数据库判断表是否存在得方法
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值