• 14931阅读
  • 13回复

QSqlDatabase连接问题~~ [复制链接]

上一主题 下一主题
离线huxueqing
 

只看楼主 倒序阅读 楼主  发表于: 2008-11-29
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(dbhost);
db.setDatabaseName(dbname);
db.setUserName(dbuser);
db.setPassword(dbpwd);
bool ok = db.open();
if(ok == false)
{
        QMessageBox::warning(this, tr(" Table"),tr("The database open is error"));
}
运行的时候就是连接不上,数据库配置信息都是对的 以下是 错误信息
说我的qmysql没有载入,但是还说有qmysql驱动器 我就弄不明白了 ~~
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL3 QMYSQL
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
离线XChinux

只看该作者 1楼 发表于: 2008-11-29
默认的,各数据库支持是以插件形式提供的,看你的Qt安装目录下的plugins/sqldrivers目录下有有没有与mysql相关的插件。
有的话运行时只要指定正确的插件目录就可以了。
请在Qt文档中索引"Using qt.conf"

最后,必须保证libmysql.dll动态库在当前目录下或者PATH路径中(如果是Linux,则要求libmysql_client_r.so在LD_LIBRARY_PATH中
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线huxueqing

只看该作者 2楼 发表于: 2008-11-29
没有插件啊 plugins文件夹下根本没有 sqldrivers这个文件夹 我是不是需要重新安装qt?还是?我是在linux下
刚才我用QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.isDriverAvailable("QMYSQL")返回是正确的 这指的是 我有qmysql数据库驱动么?
离线XChinux

只看该作者 3楼 发表于: 2008-11-29
如果有的话,那就是你编译的时候将mysql支持编译到QtSql模块中去了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线huxueqing

只看该作者 4楼 发表于: 2008-11-29
整不明白了,我从网上下来了 libqsqlmysql.so libqsqlmysql_debug.so 我自己建文件夹plugins/sqldrivers 然后把so文件拷过去,然后该做些什么 用不用设置环境变量啊
离线sundp

只看该作者 5楼 发表于: 2008-11-29
我开始遇到的问题和楼主一样,后来拷了个现成的 libqsqlmysql.so 也不好使。根据网上的答案,应该是版本问题。

后来,我上Trolltech的网站下了个完整的Qt 开源版的源码包,自己编译的,就好使了。

编译时间会很长,你可以睡前开始编译,天亮应该能完成;)
人境结庐<http://sundp70.blog.163.com>心远地偏
离线huxueqing

只看该作者 6楼 发表于: 2008-11-30
我不想重新安装qt ,因为还有还几台别的电脑也是这个问题 不能一台一台重装 最好能找到根源啊
离线huxueqing

只看该作者 7楼 发表于: 2008-11-30
再顶一下
离线sundp

只看该作者 8楼 发表于: 2008-11-30
在一台机器安装成功之后,把安装后的文件夹打包压缩,复制到其它机器上,解包,不麻烦,我就是这么做的。默认的安装路径是 /usr/local/Trolltech/Qt-4.4.3 。
我初始安装的环境是Everest 0.52,第二次安装的环境有Everest,也有RedFlag,都好用。
我Qt开发的工具用的是QDevelop 。
人境结庐<http://sundp70.blog.163.com>心远地偏
离线huxueqing

只看该作者 9楼 发表于: 2008-12-01
引用第3楼XChinux于2008-11-29 17:05发表的  :
如果有的话,那就是你编译的时候将mysql支持编译到QtSql模块中去了。

我编译到qtsql模块里了,那我怎么还说 Driver not loaded 呢 我该怎么往下做呢
离线huxueqing

只看该作者 10楼 发表于: 2008-12-01
qt文档说 自己建立驱动 进行以下命令
cd $QTDIR/src/plugins/sqldrivers/mysql
qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
make
我没有哦mysql.pro文件啊 怎么写啊
离线wd007

只看该作者 11楼 发表于: 2009-01-23
顶一下这个帖子,希望能有一个完整的解决方法,我也不清楚阿
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线wd007

只看该作者 12楼 发表于: 2009-02-24
再顶一下这个帖子,希望能有一个全面的解答
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线yleesun

只看该作者 13楼 发表于: 2009-02-24
具体见http://www.qtcn.org/bbs/read.php?tid=15649
详细的描述了如何在unix上使用QOCI,QMYSql也是一样。
快速回复
限100 字节
 
上一个 下一个