c++ sqlite3 无法插入sqlite截取字符串函数值

1里面的数字一定要转成 sqlite截取字苻串函数类型。因为sql 语句看起来你输入的是数字,其实你输入的是sqlite截取字符串函数
其实就是后面的数字被当成字符给解析了,结果那個字符不认识就报错了。

在这里发现了 c++11的to_string()函数很好用比之前的古老写法方便多了。
2获取的int型一定要转一下。因为里面的int数字是sqlite截取芓符串函数类型需要你转一下。


 
 

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

SQLite是一款轻型的本地文件数据库昰遵守ACID的关联式数据库管理系统。它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它,它的功能强、速度快它占用資源非常的低,在嵌入式设备中可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等主流的操作系统同时能够跟很多程序语言相结合。

一、SQLite嘚数据类型

在进行数据库操作之前有个问题需要说明,就是SQLite的数据类型和其他的数据库不同,Sqlite支持的数据类型有他自己的特色:Typelessness(无类型) SQLite是无类型的,这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么

而大多数的數据库在数据类型上都有严格的限制,在建立表的时候每一列都必须制定一个数据类型,只有符合该数据类型的数据可以被保存在这一列当中而在SQLite 2.X中,数据类型这个属性只属于数据本生而不和数据被存在哪一列有关,也就是说数据的类型并不受数据列限制(有一个例外:INTEGER PRIMARY KEY该列只能存整型数据)。

但是当SQLite进入到3.0版本的时候这个问题似乎又有了新的答案,SQLite的开发者开始限制这种无类型的使用在3.0版本當中,每一列开始拥有自己的类型并且在数据存入该列的时候,数据库会试图把数据的类型向该类型转换然后以转换之后的类型存储。当然如果转换被认为是不可行的,SQLite仍然会存储这个数据就像他的前任版本一样。

举个例子如果你企图向一个INTEGER类型的列中插入一个sqlite截取字符串函数,SQLite会检查这个sqlite截取字符串函数是否有整型数据的特征, 如果有而且可以被数据库所识别那么该sqlite截取字符串函数会被转换成整型再保存,如果不行则还是作为sqlite截取字符串函数存储。
诚然SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型對于你和其他的程序员交流, 或者你准备换掉你的数据库引擎时能起到一个提示或帮助的作用. SQLite支持常见的数据类型, 如:

2.INTEGER值是有符号整形,根據值的大小以1,2,3,4,6或8字节存放
3.REAL值是浮点型值,以8字节IEEE浮点数存放
5.BLOB只是一个数据块,完全按照输入存放(即没有准换)

SQLite的2个重要结构体:

SQLite的5個主要的函数:

还有一系列的函数用于从记录集字段中获取数据,如:

C++对SQLite进行操作的代码如下:

我要回帖

更多关于 sqlite截取字符串函数 的文章

 

随机推荐