Qt 4下连接MySQL数据库
2009-03-23 13:17
399 查看
前天刚装了个Qt4for windows,发现安装的时候MySQL等数据库插件都没有安装,像Qt X11版一样,都需要自己安装这些插件。
在Qt的安装目录C:/Qt4.1.2/下,有个src目录,进入plugins/sqldrivers/mysql,可以看到两个文件,main.cpp和mysql.pro,很显然要用qmake来完成编译、生成目标。
编
译前,首先保证依赖的MySQL头文件和库文件正确。首先MySQL安装目录下的include中的所有文件拷到qmake时能找到的目录下,接着从
lib/opt目录下拷出libmysql.a,其实lib/opt下只有libmysql.lib和libmysql.dll,从网上搜了一下找到一个
方法从libmysql.dll生成libmysql.a:
1 、安装好MySQL (如果不愿意安装,找个libmySQL.dll文件也可以)
2、下载Pexports工具
3、转换操作: pexports libmysql.dll > libmysql.def
4、使用MinGW的 dlltool转换成为libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k
5、尝试是否成功:
将生成的libmysql.a 拷到qmake的lib搜索路径下后在plugins/sqldrivers/mysql目录下做:
qmake -project
qmake
make
如果再出现象mysql_connect@xx (xx是数字)的错误提示。就执行第6步。
6、修改libmysql.def文件,给mysql_connect加上@xx,即mysql_connect@xx
7、重做第4步
8、然后尝试第5步,如果还是出现错误提示。就作第6步。一直到没有错误为止。
最后C:/Qt4.1.2/plugins/sqldrivers下将会生成需要的libqsqlmysql.a和qsqlmysql.dll。
找了一个测试文件,通过。
#include <QtSql>
#include <QtGui>
bool createConnection(){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setUserName("test");
db.setPassword("");
if(!db.open()){
QMessageBox::critical(0, QObject::tr("Database Error"),
db.lastError().text());
return false;
}
QSqlQuery query;
//query.exec("insert into book values( 3, 'title', 'author') ");
query.exec("select title , author from book ");
while (query.next()) {
QString title = query.value(0).toString();
QString author = query.value(1).toString();
QMessageBox::critical(0, title,author);
}
return true;
}
int main(int argc,char** argv){
QApplication app(argc, argv);
if (!createConnection()){
return 1;
}
return app.exec();
}
原文:http://www.blogjava.net/felicity/archive/2006/08/28/66280.html
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
在Qt的安装目录C:/Qt4.1.2/下,有个src目录,进入plugins/sqldrivers/mysql,可以看到两个文件,main.cpp和mysql.pro,很显然要用qmake来完成编译、生成目标。
编
译前,首先保证依赖的MySQL头文件和库文件正确。首先MySQL安装目录下的include中的所有文件拷到qmake时能找到的目录下,接着从
lib/opt目录下拷出libmysql.a,其实lib/opt下只有libmysql.lib和libmysql.dll,从网上搜了一下找到一个
方法从libmysql.dll生成libmysql.a:
1 、安装好MySQL (如果不愿意安装,找个libmySQL.dll文件也可以)
2、下载Pexports工具
3、转换操作: pexports libmysql.dll > libmysql.def
4、使用MinGW的 dlltool转换成为libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k
5、尝试是否成功:
将生成的libmysql.a 拷到qmake的lib搜索路径下后在plugins/sqldrivers/mysql目录下做:
qmake -project
qmake
make
如果再出现象mysql_connect@xx (xx是数字)的错误提示。就执行第6步。
6、修改libmysql.def文件,给mysql_connect加上@xx,即mysql_connect@xx
7、重做第4步
8、然后尝试第5步,如果还是出现错误提示。就作第6步。一直到没有错误为止。
最后C:/Qt4.1.2/plugins/sqldrivers下将会生成需要的libqsqlmysql.a和qsqlmysql.dll。
找了一个测试文件,通过。
#include <QtSql>
#include <QtGui>
bool createConnection(){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setUserName("test");
db.setPassword("");
if(!db.open()){
QMessageBox::critical(0, QObject::tr("Database Error"),
db.lastError().text());
return false;
}
QSqlQuery query;
//query.exec("insert into book values( 3, 'title', 'author') ");
query.exec("select title , author from book ");
while (query.next()) {
QString title = query.value(0).toString();
QString author = query.value(1).toString();
QMessageBox::critical(0, title,author);
}
return true;
}
int main(int argc,char** argv){
QApplication app(argc, argv);
if (!createConnection()){
return 1;
}
return app.exec();
}
原文:http://www.blogjava.net/felicity/archive/2006/08/28/66280.html
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
相关文章推荐
- Qt通过ODBC连接MySQL数据库
- Windows环境下利用Qt连接MYSQL数据库
- Qt 4下连接MySQL数据库
- Qt5.2连接Mysql数据库,并将数据读取到页面上
- qt连接mysql数据库实例
- Qt远程连接MySql数据库
- 详解Ubuntu10.10下Qt连接Mysql数据库
- Windows环境下利用Qt连接MYSQL数据库
- qt连接mysql数据库实例
- ubuntu linux下使用Qt连接MySQL数据库的方法
- CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)
- Qt连接MySQL数据库
- Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记
- Qt 连接mysql数据库 QSql
- Qt 5.4.1下编译MySQL驱动,连接MySQL数据库
- Windows下Qt 5.9 连接mysql数据库[亲试成功]
- QT连接MySql数据库连接不上
- Qt连接MySql数据库
- Qt以ODBC的方式连接MySql数据库
- linux 下使用Qt连接MySQL数据库