QT4下操作sqlite的一点小问题

tingxx 发表于 2008-05-11 14:10:39

这几天练习用qt4操作sqlite。遇到的一个小问题,费了我不少时,最后看sqlite的文档才无意解决了。
在qt4下使用sqlite,首先是
添加数据库驱动:
db=QSqlDatabase::addDatabase("QSQLITE");
然后指定用的数据库名字,在sqlite对应的就是数据文件名
db.setDatabaseName(ui.dbFileEdit->text());
接着打开数据库,如果db.open()为true,则成功
下面就可以操作数据库了,在我的程序要首先要打开一个表,如果表不存在的话还要创建。用的是 create table if not exists
 QSqlQuery query;
 bool ok=query.exec("Create table if not exists money(id INTEGER PRIMARY KEY AUTOINCREMENT ,"
   "date VARCHAR(10), type VARCHAR(8), sum FLOAT, tags VARCHAR(200))");
 if(!ok)
  ui.infoLabel->setText(tr("Table create failed"));
 else
  ui.infoLabel->setText(tr("Table create success"));
在这里就遇到一个问题了,一开始我对整数型都用int,结果总是返回错误,ok=false
如果我把AUTOINCREMENT给除掉,就成功,明明这个参数在sqlite里面是有的,只有找sqlite支持的数据类型了。sqlite其实是不分什么数据类型的,统统用字符串的形式存储。但是为了与其它数据库统一,可以分成不同的类型,我看到文档里面没有提到int 
倒是integer,哈,于是改成integer看看,还真是成功了。还真是奇怪了。我原来是对qt文档里面的例子用的int,结果还给我绕了一个圈。
关键词(Tag): 编程 sqlite qt4


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定