【发布时间】:2012-09-30 10:05:28
【问题描述】:
我有一台 windows server 2003 的服务器,它在我的本地网络上的 IP 是 192.168.1.220 此服务器已安装 SOL server 2005 express edition。此 SQL 服务器有一个名为 amir 的数据库。
我想从同一网络上的 Linux 客户端连接到它。 SQL server 服务在我的服务器上使用端口 1617,我使用此端口使用 java 连接到服务器。
哇,我想使用 QT C++,但我的代码不起作用。
这是我的代码:
#include <QtCore/QCoreApplication>
#include <iostream>
#include <QSqldatabase>
#include <QSqldriver>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
bool test=db.isValid();//true
test=db.isDriverAvailable("QODBC");//true
db.setHostName("192.168.1.220\\SQLEXPRESS");
db.setDatabaseName("DRIVER={SQL Server};SERVER=192.168.1.220\\SQLEXPRESS:1617;DATABASE=amir");
db.setUserName("sa");
db.setPassword("amir");
db.setPort(1617);
test=db.isValid();//true
if(!db.open())
{
cout<<endl<<"not connected"<<endl;
QString error=db.lastError().text();
cout<<error.toLocal8Bit().data();
return false;
}
else
cout<<endl<<"connected"<<endl;
return true;
}
每次我尝试它“未连接”并且错误是
[unixODBC][Driver Manager]未找到数据源名称,未指定默认驱动程序 QODBC3:无法连接
使用这些参数我可以使用 java 连接
那么这里有什么问题吗?以及是否有另一种使用 qt c++ 连接到 SQL 服务器的快速方法,而不是 ODBC 驱动程序。
【问题讨论】:
-
您必须使用 QODBC 插件配置您的 Qt(您需要添加选项 -qt-sql-odbc 或 -plugin-sql-odbc)
-
你的意思是我需要在我的 linux 上安装 qt-sql-odbc 并首先配置它以连接到我服务器上的 sql server 吗?就像我在 Windows XP 上的 ODBC 管理一样>?
-
这个插件安装在我的 linux 上,我如何配置 QODBC?以及如何更改我的代码