QT程序用mysql在其他主机插入数据库,本机必须要安装mysql程序么?
qt mysql出现的:无法加载驱动问题今天编辑了一个包含了mysql的QT小程序,我加载了mysql的所有dll 在本机上也能运行(本机安装了mysql)
但是到别的主机上一运行(别的主机没有安装mysql,但是我加载了mysql的dll) 还是提示无法加载驱动。是不是一定要在别的主机上也要安装mysql程序啊。?
--------------------编程问答-------------------- 不需要安装吧,检查下dll版本,debug or release? --------------------编程问答-------------------- --------------------编程问答-------------------- release 下面的exe程序 --------------------编程问答-------------------- 我用的是QT 4.3.5 --------------------编程问答--------------------
我现在就需要发布到其他机器,结果一直提示加载不到驱动,请问:这个问题该如何解决?
我现在已经在exe可执行文件同目录下建了plugins\sqldrivers这样一个二级目录,并将qsqlmysql4.dll放入其中。 并把要用的 dll 文件 拷到exe目录下了(mingwm10.dll,QtGui4.dll,QtCore4.dll,QtNetwork4.dll,QtSql4.dll,libmySQL.dll)
该怎么办啊 --------------------编程问答-------------------- 有一个方法可以试一下:用Depends工具看看你的exe到底调用了哪些DLL,看看在打包部署时是不是有漏掉的
Depends工具下载地址 --------------------编程问答--------------------
我现在能连接上数据库了 但是
为什么我的QT程序在执行
会出现读到空的内存的情况呢
错误提示如下:
“0x6a316187”指令引用的“0x00000000”内存。该内存不能“read”
这样的错误的呢
#include<QApplication>
#include<QtSql/QSqlDatabase>
#include<QtSql/QSqlQuery>
#include<QTextEdit>
#include<QtCore/QDateTime>
#include<QtSql/QSqlDriver>
#include<QString>
#include<QDebug.h>
#include<QTextCodec>
#include<QSqlError>
#include<QDir>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动
db.setHostName("172.22.142.81");
db.setDatabaseName("p2p"); // 我们之前建立的数据库
db.setUserName("root"); // 我们创建的 yunfan 用户名
db.setPassword("123"); // yunfan 用户的密码
bool ok = db.open(); // 尝试连接数据库
qDebug()<<ok<<endl;
if(ok)
{
qDebug()<<"open database."<<endl;
QString strsql=QString("SELECT * FROM progress");
qDebug()<<strsql<<endl;
QSqlQuery query;
qDebug()<<"3"<<endl;
if(query.exec(strsql))
{
qDebug()<<"yes the number get in!"<<endl;
}
else
{
qDebug()<<"no the number is wrong!"<<endl;
qDebug()<<query.lastError ().text()<<endl;
}
qDebug()<<"4"<<endl;
db.close();
}
else
{ // 打开数据库失败,显示数据库失败
}
return app.exec();
}
这个是我程序的代码
--------------------编程问答--------------------
-----“0x6a316187”指令引用的“0x00000000”内存。该内存不能“read”
应该是程序里那个对象使用时为空造成的,你单步调试一下,先看看是哪条语句的问题。 --------------------编程问答--------------------
这个怎么单步调试啊 我不是用VC写的 用什么工具能单步调试的 --------------------编程问答-------------------- 请问,怎样将QMYSQL编译为release版本的呢? --------------------编程问答-------------------- 你只需要在exe可执行文件同目录下建个sqldrivers目录就好了,然后将libqsqlmysql4.a、libqsqlmysqld4.a、qsqlmysql4.dll、qsqlmysqld4.dll拷贝进去就Ok啦!
补充:移动开发 , Qt