Qt 4下连接MySQL数据库

xiaoxiao2024-04-19  21

前天刚装了个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>boolcreateConnection(){QSqlDatabasedb = QSqlDatabase::addDatabase( " QMYSQL " ) ; db.setHostName( " localhost " ) ; db.setDatabaseName( " test " ) ; db.setUserName( " test " ) ; db.setPassword( "" ) ; if(!db.open()){QMessageBox::critical( 0 , QObject::tr( " DatabaseError " ) , db.lastError().text()) ; returnfalse ; }QSqlQueryquery ; //query.exec( " insertintobookvalues(3,'title','author') " ) ; query.exec( " selecttitle,authorfrombook " ) ; while(query.next()){QStringtitle = query.value( 0 ).toString() ; QStringauthor = query.value( 1 ).toString() ; QMessageBox::critical( 0 , title , author) ; }returntrue ; }intmain(intargc , char**argv){QApplicationapp(argc , argv) ; if(!createConnection()){return 1 ; }returnapp.exec() ; } 原文:http://www.blogjava.net/felicity/archive/2006/08/28/66280.html 国内最棒的Google Android技术社区(eoeandroid),欢迎访问! 《银河系列原创教程》发布 《Java Web开发速学宝典》出版,欢迎定购 相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-5015082.html

最新回复(0)