C++连接sqlite数据库的坑
新的第一次用vs2013搞 C++连接sqlite数据库,遇到了很多问题,我也不搞不懂~~~下面写点小体会
首先:
你要先配置好sqlite的环境
参考链接:
https://blog.csdn.net/ijinfu/article/details/68485273
https://www.cnblogs.com/chechen/p/7356010.html
配置好之后捏:
跟着写,跟着操作,结果运行出现了许多 不是找不到数据库 就是 no such table,我真的是 吃柠檬吧!!!
下面给上我的测试代码:
数据创建路径,这个是非常重要的,不然到时候读取不到~
随便在一个盘建个文件夹名字自己想 如 : D:\sqlite
接着 cmd
进入到文件夹目录,可以开始创建数据库了
创建数据库命令 : sqlite3 数据库名字 如:sqlite3 test.db;
创建完数据就是建表了:
CREATE TABLE student( ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(), FEES REAL
);
表格创建完毕,没有数据怎么办?当然是插入~
INSERT INTO student (ID,NAME,AGE,ADDRESS,FEES) VALUES (, 'Maxsu', , 'Shengzhen', 20000.00); INSERT INTO student (ID,NAME,AGE,ADDRESS,FEES) VALUES (, 'Minsu', , 'Beijing', 15000.00 ); INSERT INTO student (ID,NAME,AGE,ADDRESS,FEES) VALUES (, 'Avgsu', , 'Shanghai', 2000.00 ); INSERT INTO student (ID,NAME,AGE,ADDRESS,FEES) VALUES (, 'Linsu', , 'Guangzhou', 65000.00 ); INSERT INTO student (ID,NAME,AGE,ADDRESS,FEES) VALUES (, 'Sqlsu', , 'Haikou', 25000.00 )
如图:
ok,接下来是代码部分~~(代码也是参考修改的)
#include "stdafx.h"
#include "sqlite3.h"
#include <iostream>
using namespace std; sqlite3 * pDB = NULL; //查找
bool SelectUser(); int _tmain(int argc, _TCHAR* argv[])
{
//打开路径采用utf-8编码
//如果路径中包含中文,需要进行编码转换
//路径非常重要,如果找不到,会自己创一个新的
int nRes = sqlite3_open("D:\\sqlite\\test.db", &pDB);
if (nRes != SQLITE_OK)
{
cout << "Open database fail: " << sqlite3_errmsg(pDB);
goto QUIT;
} //查找
if (!SelectUser())
{ goto QUIT;
} QUIT:
sqlite3_close(pDB); return ;
} static int UserResult(void *NotUsed, int argc, char **argv, char **azColName)
{ for (int i = ; i < argc; i++)
{ cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << ", ";
}
cout << endl;
return ;
} bool SelectUser()
{
char* cErrMsg;
int res = sqlite3_exec(pDB, "select * from student;", UserResult, , &cErrMsg); if (res != SQLITE_OK)
{
cout << "select fail: " << cErrMsg << endl;
return false;
}
return true;
}
当然了你以为就成功了么 结果运行发现 不是找不到database 就是没发现table
怎么办?
先看看 有没有表:
没有student表
当然是再到命令窗口 继续建表和插入数据了
.open test.db; //打开一个数据库,没有会新建 .database; //查看数据库 .table //查看数据表 是否存在 select * from student; //查看数据
ok 再次创建完毕,运行
关于第一次没有找到表,我也不知道什么鬼,但是我确实有创建,而再次创建就出来了,有点搞不懂。。。有遇到这样的情况么 欢迎骚扰~~~~
如果你有更好的连接方法,欢迎留言,一起交流~~~·
C++连接sqlite数据库的坑的更多相关文章
- VS2010连接SQLite数据库
Visual studio 2010及以上版本,连接SQLite数据库 1.在Sqlite开发站点下载SQLite的.exe安装包 Ctrl+F搜索这条语句:This is the only setu ...
- Python3实现连接SQLite数据库的方法
本文实例讲述了Python3实现连接SQLite数据库的方法,对于Python的学习有不错的参考借鉴价值.分享给大家供大家参考之用.具体方法如下: 实例代码如下: ? 1 2 3 4 5 6 7 8 ...
- 一起学微软Power BI系列-使用技巧(6) 连接Sqlite数据库
好久没有研究Power BI了,看到高飞大神弄的东西,太惭愧了.今天有个小东西,数据在Sqlite里面,想倒腾到Power BI Desktop里面折腾一下,结果发现还不直接支持.所以只好硬着头皮上去 ...
- VS2010上连接SQLite数据库
VS2010连接SQLite数据库 Visual studio 2010及以上版本,连接SQLite数据库 1.在Sqlite开发站点下载SQLite的.exe安装包 Ctrl+F搜索这条语句:Thi ...
- Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)
系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe ...
- Delphi 2010下使用sqlitesimpledelphi连接SQLite数据库及中文乱码问题的解决
应女朋友的要求,要写一款销售管理的软件.用于管理服装店每天的销售记录,已及管理服装店的客户,并对客户进行生日提醒 因为之前使用C#写过一款家庭管理软件,主要是自己用,所以使用了服务器型数据库MySQL ...
- C#连接SQLite数据库方法
--结合Enterprise Library连接,操作SQLite 企业库是我们常用的框架之一,可以从http://entlib.codeplex.com/下载Enterprise Library 5 ...
- Java 连接SQLite数据库
下载jar包: http://www.sqlite.com.cn/Upfiles/source/sqlitejdbc-v033-nested.tgz public class TestSQLite { ...
- Perl连接Sqlite数据库
Sqlite是一个小巧的嵌入式关系型数据库,几乎可以嵌入所有编程语言,特别是C,C++,PHP,Perl等.这里就介绍如何用Perl连接并操作Sqlite数据库. use DBI; # perl用以操 ...
随机推荐
- 穿越雷区--蓝桥杯--DFS/BFS
题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短? ...
- Django 学习之内置Admin
一.Admin组件 Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: Django Admin内部依赖: 依赖APP: django.contrib.au ...
- Scrapy 常用的shell执行命令
1.在任意系统下,可以使用 pip 安装 Scrapy pip install scrapy/ 确认安装成功 >>> import scrapy >>> scrap ...
- 洛谷 P3320 [SDOI2015]寻宝游戏
因为寻宝路径是一个环,所以寻宝花费的最小时间与起点无关.宝应当按照所有宝藏所在位置的 dfs 序进行才能够使得花费的时间最短.设 \(dist_i\) 表示 \(i\) 到树根的最短距离,那么树上任意 ...
- Linux学习计划中遇到的问题记录
随时更新 Linux安装到网络联通遇到的问题及解决办法 1.命令区分大小写 2..网络连通 ping本地 地址遇到问题 解决办法: https://blog.csdn.net/qq_42074075/ ...
- ORACLE 用32進制表示月中的一天
WHEN 'YMD' THEN v_year := to_char(SYSDATE, 'Y'); v_month := FN_CONVERT_DECIM ...
- 一、iBatis进行分页查询
1.ibatis理解: iBatis属于半自动化的ORM框架,我们需要编写SQL语句,由iBatis进行数据库访问,返回结果.而iBatis可以为我们做的更多,比如对查询参数集合.结果.分页查询.事务 ...
- 「JSOI2008」Blue Mary的旅行
传送门 Luogu 解题思路 分层图加网络流,有点像这题 可以证明最多不超过100天,所以才可以分层,不然图的规模会很大. 首先连源点汇点: \((s,1,INF), (n, t, INF)\) 以时 ...
- MAC电脑如何播放.SWF文件
很简单,不需要专门的播放器,只需要将.swf文件直接拖拽到浏览器页面就可以播放了. 亲测safari , 谷歌chrome浏览器,火狐浏览器 ,都是可以的 下面是图示 step1 电脑上找到swf文件 ...
- 使用Go语言一段时间的感受
作者 openkk 2012-03-04 18:26:58 文/Windstorm 有一段时间没更新了.最近在忙一个 Server+Client 的项目,Client 是 Android 手机,大概也 ...