加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite3 自增字段;生成lib文件;中文乱码;VC下调用

发布时间:2020-12-12 19:34:30 所属栏目:百科 来源:网络整理
导读:create table t_mission( id INTEGER PRIMARY KEY AUTOINCREMENT, accountname varchar(20), objectname varchar(20), endtime datetime); 搞定了一个困扰许久的问题,原来sqlite中的主键也是可以设置为自增的:) 方法就是声明为 INTEGER PRIMARY KEY 的字段
create table t_mission( id INTEGER PRIMARY KEY AUTOINCREMENT,
accountname varchar(20),
objectname varchar(20),

endtime datetime);



搞定了一个困扰许久的问题,原来sqlite中的主键也是可以设置为自增的:)方法就是声明为 INTEGER PRIMARY KEY 的字段可以自动增加。
网上查到资料说,从 SQLite 的 2.3.4 版本开始,如果将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么只需向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。

CREATE TABLE "ProcessList"(
[Id] integer(4) PRIMARY KEY
,[Type] varchar(20)
,[Name] varchar(30)
,[IsUse] int

)
执行
insert into processlist
values
(null,'a','b',1)
在逻辑意义上等价于:
insert into processlist VALUES((SELECT max(Id) FROM processlist)+1,1);

insert into processlist
values
(null,'aa','bb',1)
执行两条插入语句后再查询表中数据:
select * from processlist
结果如下:

IdTypeNameIsUse
1 a b 1
2 aa bb 1

一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键.注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的, 但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码


生成lib文件:

http://www.cnblogs.com/BoyXiao/archive/2012/03/31/2426495.html


中文乱码:

http://www.aspzz.cn/article/35778.htm


VC下调用:

http://www.cnblogs.com/top5/archive/2010/08/31/1813762.html

http://blog.csdn.net/akof1314/article/details/5937103

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读