• 5477阅读
  • 3回复

odbc连接数据库问题不解 [复制链接]

上一主题 下一主题
离线eastwarm
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-15
我在Windows下用qt creator4.6写的程序。最初安装后在debug模式,动态编译。调用动态库能访问到数据库。然后我静态编译了qt,然后在release模式编译我的程序,运行,提示缺minggw的一个动态库,将这个动态链接库放到可执行文件同一文件夹,程序可以运行了,但又访问不了数据库。好像是odbc的驱动没有编译进去似的。我加了odbc的动态库也不能运行。不知道静态怎么编译数据库了,我调用的access数据库
离线eastwarm
只看该作者 1楼 发表于: 2010-01-15
做了一些尝试,还是没出来。
首先在main文件中加了Q_IMPORT_PLUGIN(qsqlodbc),然后在工程文件中加上config +=static,libs+=qsqlodbc4.a,libs+=qsqlodbcd4.a(完整路径)。最初提示找不到qsqlodbc,我在plugins目录下看了一下,只有qsqlodbc4.a和qsqlodbcd4.a,这两个文件。于是我在src\plugins目录下,找到odbc工程文件,重新编译,生成了qsqlodbcd文件。重新编译我的工程,提示找不到qsqlodbc文件,我把qsqlodbcd改名为qsqlodbc,这时出现好多undefined错误。如undefined reference to SQLGetDiagRecW@32等,这样的错误。哪位大侠指点一下
离线hehui

只看该作者 2楼 发表于: 2010-01-15
Configure时也要加上odbc才行!
离线scorpiuseol
只看该作者 3楼 发表于: 2010-01-17
windows下:
你要先静态编译Qt4.6.0,plugins/sqldrivers下会产生一个qsqlodbc.a的文件,不是自带的qsqlodbcd4.a,这点要搞清楚,然后就按你原来的步骤开始静态编译吧,这样就可加载odbc驱动了,楼上hehui 说的很好,静态编译Qt4.6.0要了解是否qsqlodbc=plugin,如果是=no,那就要打开了,方法是:configure -plugin-sql-odbc -static -release,就说这么多,你动手试试吧,Good Luck!
快速回复
限100 字节
 
上一个 下一个