关于c++连接sql server 2008的问题

时间:2023-01-19 15:52:59
数据库是sql server 2008  本机数据源也配置好了,测试通过。开发工具是vs2008
1、使用Qt 4.8.5连接,
QStringList list = QSqlDatabase::drivers();   //list只有QOCI
QSqlDatabase m_db = QSqlDatabase::addDatabase("QODBC");
QSqlError err = m_db.lastError();
提示"Driver not loaded"

照网上的方法,在运行目录下增加了文件夹sqldrivers,并加入qsqloci4.dll、qsqlmysql4.dll、qsqlodbc4.dll,还是只有QOCI,请问是什么问题?qsqlodbc4.dll是网上找的qt exe解压出来的

2、Qt失败后,尝试使用SQLConnect,一直返回-1,网上搜了下,按照他说的,在空项目里是成功了,QtApplication不行,这,难道把建个空项目,然后编译成lib再调用?

实在想不明白了,请高人指教,谢谢

5 个解决方案

#1


还有可能就是项目类型影响了库的连接

#2


引用 1 楼 oyljerry 的回复:
还有可能就是项目类型影响了库的连接


这是什么原因,还真不懂。

有没有类似经历的同学,请教

#3


在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
    在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
    且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
    在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
    在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平台注意点之文件系统重定向  http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平台注意点之注册表重定向  http://www.cnblogs.com/jiake/p/4956218.html

#4


c++使用sql server,试过了qt,驱动没有;ODBC接口,现场每次写入都是全新打开连接;ADO写入成功概率不如前者高。。。

#5


ding yixia

#1


还有可能就是项目类型影响了库的连接

#2


引用 1 楼 oyljerry 的回复:
还有可能就是项目类型影响了库的连接


这是什么原因,还真不懂。

有没有类似经历的同学,请教

#3


在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
    在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
    且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
    在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
    在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平台注意点之文件系统重定向  http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平台注意点之注册表重定向  http://www.cnblogs.com/jiake/p/4956218.html

#4


c++使用sql server,试过了qt,驱动没有;ODBC接口,现场每次写入都是全新打开连接;ADO写入成功概率不如前者高。。。

#5


ding yixia