• 5778阅读
  • 2回复

Qt QODBC数据库不能打开 大家请帮忙看下 谢谢了 [复制链接]

上一主题 下一主题
离线rbllbr
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-26
这个问题折腾好久了 是这样的
安装的是qt官方网站最新版本
QStringList drivers = QSqlDatabase::drivers();
  foreach(QString driver, drivers)
  qDebug() << driver << "\t";
运行结果为:
Available drivers:  
"QSQLITE"  
"QODBC3"  
"QODBC"
这说明已经有QODBC安装了吧?
然后
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=myaccessfile.mdb");
if (!db.open()) {
  qDebug() << "db open failed!";
}
一直显示打开错误 语句也没错 但就是打开不了 也在网上查了些资料 说将F:\Qt\4.7.3\plugins\sqldrivers下面的qsqlite4.dll,qsqlited4.dll,qsqlodbc4.dll,qsqlodbcd4.dll,复制到当前工程目录**build-desktop\debug\sqldrivers下面,即可但是事实还是不行
大家请帮忙看看什么问题呢 谢谢
离线XChinux

只看该作者 1楼 发表于: 2011-09-26
将db.lastError()打印出来看看什么内容.
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线rbllbr

只看该作者 2楼 发表于: 2011-09-27
回 1楼(XChinux) 的帖子
您好!
问题“好像”解决了 实际上上面的还是对的
将F:\Qt\4.7.3\plugins\sqldrivers下面的qsqlite4.dll,qsqlited4.dll,qsqlodbc4.dll,qsqlodbcd4.dll,复制到当前工程目录**build-desktop\debug\sqldrivers下面 这样就可以了 错误的提示经过打印
QMessageBox::critical(0, QObject::tr("Database Error"),db.lastError().text()); 显示是找不到一个文件 然后我猜在db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:\\path\\to\\mydatabase.mdb"); 那就是在c:\path\to目录下先要建立一个mydatabase.mdb这个access文件 然后才可以打开 这样就成功了 但是仔细想想呢 sqlite是可以直接创建 然后打开的呀 但是不知道为什么access要我先建立一个mdb文件 然后才可以打开
快速回复
限100 字节
 
上一个 下一个