一 为什么要选择SQLite

由于使用文本文件来记录测试数据,速度越来越慢的问题,经过园友推荐,使用了SQLite来进行数据的存储,再次感谢园友@LightSmaile

关于这个问题,可以参考一下上一篇随笔中的介绍,为何要更换用数据库来存储数据。链接地址:http://www.cnblogs.com/fredliu/p/6692986.html

二 选择SQLite使用方法

当然SQLite的使用方法有很多,网上也有很多的介绍,经过筛选,我选择了使用一个封装好的MFC类,来使用SQL。

为什么要选择这个方案呢,因为我比较懒,既然有前辈做好了封装类,那直接拿过来用就好了。但是不能只做伸手党,在此介绍给园友。

CodeProject上的SQLite3Wrapper封装(http://www.codeproject.com/KB/windows/SQLite3Wrapper.aspx)

具体的使用方法,园友们可以参考一下这位朋友的介绍,使用比较简单:http://blog.csdn.net/akof1314/article/details/5937103

三 使用中遇到的问题一

环境上都搭好了,那么就开始使用了,使用中遇到的第一个问题,那就是一个错误提示 “SQLITE_MISUSE”

唉,好不容易引入SQLite,也写了不少代码,替换原来的方案了,一运行,啪,弹出来这一个错误,大晚上的搞的心情的不好了。心里还想着,赶紧把SQLite替换好原来的方案,搞完去Dota两盘呢,结果出师不利。

查看这个错误的解释

#define SQLITE_MISUSE      21   /* Library used incorrectly */

库使用不当,可我是按照事例中的方法去做的啊。

经过百度,大概了解,可能其中写的语句中有不符合规范的。

于是进过查找,找到其中多了一个“)”括号,我的天,把事例代码拷过来,增加数据后,位置不对。

fTest = gloableConfig.sqlite.DirectStatement("CREATE TABLE mainData(name varchar(50), count varchar(10)),LAvg varchar(10),LMax varchar(10),LMin varchar(10))");

啊哈哈,居然犯了这样的错误。

四 使用中遇到的问题二

这个问题解决了,然后继续跑,结果,嘎嘣,又跳出来这个错误。

我的天,这一次又是啥原因。

经过调试,找到错误代码行。

szQuery.Format("CREATE TABLE %s(index_Num varchar(10),L_L varchar(10),xSe varchar(10),ySe varchar(10),Tc varchar(10),uSe varchar(10),vSe varchar(10),X_S varchar(10),Y_S varchar(10),Z_S varchar(10))",strTemp);

这下仔细检查了了括号,也没问题,那么问题可能出在这个strTemp上。

查看strTemp的赋值

strTemp.Format("--%02d:%02d:%02d:%04d",time.wHour,time.wMinute,time.wSecond,nCeshixuhao);
strTemp = strProXinghao + "--" + strTemplateName + strTemp;

心想是不是创建的表名里面不能有特殊的字符。

于是先把里面的“:”换成“_”,运行依然报同样的错误。

接着把“--”换成“_”,再运行下,OK了,不报错了。

原来是这个样字。

    strTemp.Format("_%02d_%02d_%02d_%04d",time.wHour,time.wMinute,time.wSecond,nCeshixuhao);
strTemp = strProXinghao + "_" + strTemplateName + strTemp;

至此 SQLite3Wrapper的基本使用已经没问题了。

MFC使用SQLite 学习系列 一: SQLITE_MISUSE错误的更多相关文章

  1. MFC使用SQLite 学习系列 二:无法容忍的数据插入效率

    上一篇随笔中,介绍了,基本的使用没什么问题了,那么开始数据的插入. 一 问题--无法容忍的插入效率 代码写入基本完成,然后开始测试.起初,插入数据的时候基本上是插入每次插入9组数据,看不出来数据插入的 ...

  2. php优秀框架codeigniter学习系列——异常和错误处理机制

    这篇介绍下CI框架的异常和错误处理机制. 在入口文件index.php中,根据设置的环境参数设置error_reporting的范围,和是否显示错误. 在CI初始化程序CodeIgniter.php中 ...

  3. 【.Net Core 学习系列】-- 自定义错误页面在IE浏览器中不能正常显示

    测试场景: 1. 新建.Net Core Web项目 2. 选择模板: 3. 修改Error页面代码:(去掉母版页并修改页面显示信息) 4. 修改[ASPNETCORE_ENVIRONMENT],并抛 ...

  4. StreamSets学习系列之启动StreamSets时出现Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "test.to.ensure.security.is.configured.correctly" "read")错误的解决办法

    不多说,直接上干货! 问题详情 [hadoop@master streamsets-datacollector-]$ ./bin/streamsets dc Java 1.8 detected; ad ...

  5. Android+Jquery Mobile学习系列(7)-保险人信息

    [保险人管理]是这个APP最重要的功能,用于保存保险客户的数据,给后面的功能提供数据支撑. 简单说说[保险人管理]功能:主要就是增.删.改.查四个功能,在新增和修改的时候不仅可以保存保险人的姓名.身份 ...

  6. Android+Jquery Mobile学习系列(6)-个人信息设置

    本节开始,进行代码的实战练习.我的这个App是管理保险客户信息的,数据采用Sqlite存储在本地手机上,第一次使用需要先登记自己的个人信息,这个功能非常简单,也无关紧要,我是拿这个练手,方便做后面复杂 ...

  7. SQlite 学习资料

      很有用的开源跨平台数据库,可以作为客户端的小型内存数据库使用,据说它有N多用户(Nokia's Symbian,Mozilla,Abobe,Google,阿里旺旺,飞信,Chrome,FireFo ...

  8. MVC学习系列4--@helper辅助方法和用户自定义HTML方法

    在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...

  9. MVC学习系列14--Bundling And Minification【捆绑和压缩】--翻译国外大牛的文章

    这个系列是,基础学习系列的最后一部分,这里,我打算翻译一篇国外的技术文章结束这个基础部分的学习:后面打算继续写深入学习MVC系列的文章,之所以要写博客,我个人觉得,做技术的,首先得要懂得分享,说不定你 ...

随机推荐

  1. SecureCRT文件传输模式

    前言 如下图所示,SecureCRT6.5.0 有4种文件传输模式. 1)ASCII:最快的传输模式,但只能传文本 2)Xmodem:非常古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的 ...

  2. tomcat 假死

    1.1 编写目的 为了方便大家以后发现进程假死的时候能够正常的分析并且第一时间保留现场快照.1.2编写背景最近服务器发现tomcat的应用会偶尔出现无法访问的情况.经过一段时间的观察最近又发现有台to ...

  3. PDO控制、连接数据库

    PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口.PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,基于数据库使用的安全性,因为后者欠缺对于SQL ...

  4. Python 3中字符串可以被改变吗?

    Python 3中字符串可以被改变吗? 字符串有改变这个方法的:replace,比如: a = 'lkjhgfdsa' a.replace(') '123kjhgfdsa' #返回结果 从上面这个例子 ...

  5. 【Java集合类】ArrayList详解 (JDK7)

    相信对于使用过Java的人来说,ArrayList这个类大家一定不会陌生. 数据结构课上讲过, Array是数组,它能根据下标直接找到相应的地址,所以索引速度很快,但是唯一的缺点是不能动态改变数组的长 ...

  6. H5 视频

    HTML 5 视频 HTML5 简介 HTML5 视频/DOM 许多时髦的网站都提供视频.HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 HTML5 视频: Yes! Full suppo ...

  7. 通过spring 中的@Scheduled来执行定时任务

    以前开发定时任务的功能的时候,是框架里面写好的quartz配置方式,由于功力尚浅,感觉定时跑披定时任务什么的云里雾里,很高大上,每次都不知道怎么修改配置,后来几次接触定时任务发现,还是比较好掌握的,特 ...

  8. commonJS的核心思想

    服务器端的 Node.js 遵循 CommonJS规范,该规范的核心思想是允许模块通过 require 方法来同步加载所要依赖的其他模块,然后通过 exports 或 module.exports 来 ...

  9. Swiper3 的特色功能

  10. CSS限制字数,超出部份显示点点点...

    最近项目中需要用CSS实现限制字数,超出部份显示点点点...,只需要一下代码即可: width:400px;/*要显示文字的宽度*/ text-overflow :ellipsis; /*让截断的文字 ...