• 6983阅读
  • 12回复

求救~连接sqlite数据库矢败 [复制链接]

上一主题 下一主题
离线luluwang1119
 
只看楼主 倒序阅读 楼主  发表于: 2010-12-03
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
其实我也不清楚什么原因...总之是运行后 弹出的窗口没有数据的内容...
高手们帮忙给找找原因吧,都折腾了好几天了...哎,我比较菜...
程序:
]#include<QApplication>
#include<QSqlQueryModel>
#include<QSqlDatabase>#include<QTableView>
#include<QtSql>intmain(intargc,char*argv[])
{
QApplicationapp(argc,argv);
QSqlDatabasedb=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("books.db");if(!db.open())
{
qDebug()<<db.lastError();qFatal("Failedtoconnect");
}
QSqlQueryModel*model=newQSqlQueryModel();
model->setQuery("selectID,Numfromenglish");
QTableView*view=newQTableView();
view->setModel(model);
view->show();
returnapp.exec();
}
库文件路径也已经添加在/etc/ld.so.conf中了...
离线luluwang1119
只看该作者 1楼 发表于: 2010-12-04
自己顶
离线luluwang1119
只看该作者 2楼 发表于: 2010-12-04
运行过程没有报错,但就是没有数据 ...
离线optphantom

只看该作者 3楼 发表于: 2010-12-04
1. book.db不是空数据表
2.
  1. model->setQuery("selectID,Numfromenglish");

你确定是这么写的,而不是
  1. model->setQuery("select ID, Num from english");
单词间有空格的
离线luluwang1119
只看该作者 4楼 发表于: 2010-12-04
回 3楼(optphantom) 的帖子
谢谢你谢谢你~终于有人回应我了
我在shell下 .dump english查询过 肯定是有数据的
另外我程序里是有空格的,复制过来没了的...
离线optphantom

只看该作者 5楼 发表于: 2010-12-04
回 4楼(luluwang1119) 的帖子
我用你的代码在windows下试了一下,可以显示数据库里的内容。

不过我用SELECT * FROM 表名的
离线luluwang1119
只看该作者 6楼 发表于: 2010-12-04
回 5楼(optphantom) 的帖子
谢谢谢谢
那请问你是也建了一个数据库在windows?然后数据库的内容都显示出来了?
我用的是ubuntu现在,这个应该不会有影响吧...
离线optphantom

只看该作者 7楼 发表于: 2010-12-04
  1. #include<QApplication>
  2. #include<QSqlQueryModel>
  3. #include<QSqlDatabase>
  4. #include<QTableView>
  5. #include<QtSql>
  6. int main(int argc, char *argv[])
  7. {
  8.  QApplication app(argc, argv);
  9.  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  10.  db.setDatabaseName("test.db");
  11.  if(!db.open())
  12.  {
  13.   // qDebug() << db.lastError();
  14.   // qFatal("Failed to connect");
  15.  }
  16.  QSqlQueryModel *model = new QSqlQueryModel();
  17.  model->setQuery("SELECT * FROM person");
  18.  QTableView *view = new QTableView();
  19.  view->setModel(model);
  20.  view->show();
  21.  return app.exec();
  22. }

test.db是自己创建的数据库文件,person是表名


离线luluwang1119
只看该作者 8楼 发表于: 2010-12-04
回 7楼(optphantom) 的帖子
按你的试了下 依旧空空如也...哎
到底哪出的问题啊 不明白
离线luluwang1119
只看该作者 9楼 发表于: 2010-12-04
补充一句,我在安装QT的时候,出现过错误信息,大概是:
error copying file from packed archive from...to /opt/doc/src/images/....png
我当时直接忽略了,这个应该不会有影响吧?
离线luluwang1119
只看该作者 10楼 发表于: 2010-12-04
问题解决了...我把数据库放在了工程的test文件夹下,实际上应该放在test-build-desktop文件夹下,复制过去就对了...这其中的区别我正学呢
新手 大家见笑了哈
离线kaede
只看该作者 11楼 发表于: 2011-04-12
回 10楼(luluwang1119) 的帖子
你好,我也遇到了和你一样的问题,你说的test-build-desktop 是什么文件夹?
这是我遇到的问题:
离线kaede
只看该作者 12楼 发表于: 2011-04-24
请问,sqlite的驱动程序是在哪里下的?
快速回复
限100 字节
 
上一个 下一个