我有一臺windows server 2003的服務器,其本地網絡上的IP爲192.168.1.220 此服務器安裝了SOL server 2005 express版本。這個SQL服務器有一個名爲amir的數據庫。通過QT C++連接到SQL Server 2005
我想從同一網絡上的Linux客戶端連接到它。 SQL服務器服務使用端口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] [驅動程序管理器]數據源名稱未找到,並沒有指定默認驅動程序QODBC3:無法連接
使用這些參數,我可以用java
連接那麼這裏有什麼問題?以及是否有另一種使用qt C++而不是ODBC驅動程序連接到SQL服務器的方法。
你必須用QODBC插件配置你的Qt(你需要添加選項-qt-sql-odbc或-plugin-sql-odbc) – Blood
你的意思是我需要在我的linux上安裝qt-sql-odbc,首先配置它以連接到我的服務器上的SQL服務器?正如我在Windows XP中的ODBC管理>? –
這個插件安裝在我的linux上如何配置QODBC?以及如何更改我的代碼 –