Qt遠端連線SQlServer資料庫

2021-06-22 16:31:54 字數 3768 閱讀 4175

一:**。

/**連線sql server資料庫

*資料庫名:abc

*表名:sql_2000

*使用者名稱:sa

*密碼:123

*埠號:(預設)1433

*/void

maindialog::connectsql(qstring sip, 

intiport,  qstring sdbnm, qstring susernm, qstring spwd)  

;server=%1;port=%2;database=%3;uid=%4;pwd=%5;"

)  .arg(sip)  

.arg(iport)  

.arg(sdbnm)  

.arg(susernm)  

.arg(spwd);  

db.setdatabasename(dsn);  

/*連線sql 2000*/

bool

r = db.open();  

if(r)  

}  /*插入資料*/

qsqlquery query2 = qsqlquery(db);  

qstring sq1 = qobject::tr("insert into sql_2000(id,ip,port,username,password,dbtype,dbname)"

"values (?, ?, ?, ?, ?, ?, ?)"

);  

bool

b = query2.prepare(sq1);  

if(b)  

query2.bindvalue(0, id+1);  

query2.bindvalue(1, sip);  

query2.bindvalue(2, iport);  

query2.bindvalue(3, susernm);  

query2.bindvalue(4, spwd);  

query2.bindvalue(5, sdbtype);  

query2.bindvalue(6, sdbnm);  

/*查詢資料*/

qsqlquery query3 = qsqlquery(db);  

query3.prepare("select * from sql_2000 where id=1"

);  

bool

c = query3.exec();  

if(c)  

}  else

/*刪除資料*/

qsqlquery query4 = qsqlquery(db);  

query4.prepare("delete from sql_2000 where id=1"

);  

bool

d = query4.exec();  

if(d)  

else

}  else

db.close();  

}  

二:安裝。 參考

(安裝**)

三:連線過程遇到的問題。

問題:"[microsoft][odbc sql server driver][dbnetlib]sql server 不存在或訪問被拒絕 [microsoft][odbc sql server driver][dbnetlib]connectionopen (connect()). [microsoft][odbc sql server driver]無效的連線字串屬性 qodbc3: unable to connect"

通過對比,我發現問題:

伺服器沒有在1433埠偵聽。

(測試方法:在dos下輸入netstat -a -n或者netstat -an;結果:找不到tcp 127.0.0.1 1433 listening的項)

解決方法:

安裝補丁(我的版本對應sp4)

打補丁的過程中出現問題:不能開啟要寫入的檔案c:\windows\system32\ntwdblib.dll。

重啟還是不行,我就把sp4安裝包中的ntwdblib.dll直接拷貝到c:\windows\system32中。

再試telnet 127.0.0.1 1433,居然連線上了。

網絡卡設定:埠沒被偵聽,也可能是網絡卡的問題。

本地連線--->屬性--->internet協議(tcp/ip)--->屬性--->高階--->選項--->屬性--->全部允許tcp埠。

[cpp]view plain

copy

print?

/**連線sql server資料庫

*資料庫名:abc

*表名:sql_2000

*使用者名稱:sa

*密碼:123

*埠號:(預設)1433

*/void

maindialog::connectsql(qstring sip, 

intiport,  qstring sdbnm, qstring susernm, qstring spwd)  

;server=%1;port=%2;database=%3;uid=%4;pwd=%5;"

)  .arg(sip)  

.arg(iport)  

.arg(sdbnm)  

.arg(susernm)  

.arg(spwd);  

db.setdatabasename(dsn);  

/*連線sql 2000*/

bool

r = db.open();  

if(r)  

}  /*插入資料*/

qsqlquery query2 = qsqlquery(db);  

qstring sq1 = qobject::tr("insert into sql_2000(id,ip,port,username,password,dbtype,dbname)"

"values (?, ?, ?, ?, ?, ?, ?)"

);  

bool

b = query2.prepare(sq1);  

if(b)  

query2.bindvalue(0, id+1);  

query2.bindvalue(1, sip);  

query2.bindvalue(2, iport);  

query2.bindvalue(3, susernm);  

query2.bindvalue(4, spwd);  

query2.bindvalue(5, sdbtype);  

query2.bindvalue(6, sdbnm);  

/*查詢資料*/

qsqlquery query3 = qsqlquery(db);  

query3.prepare("select * from sql_2000 where id=1"

);  

bool

c = query3.exec();  

if(c)  

}  else

/*刪除資料*/

qsqlquery query4 = qsqlquery(db);  

query4.prepare("delete from sql_2000 where id=1"

);  

bool

d = query4.exec();  

if(d)  

else

}  else

db.close();  

}  

SQL Server無法遠端連線

解決sql server 2008無法遠端連線問題 詳細步驟如下 1.配置管理器,啟動sql server browser 2.開啟左側sqlserver網路配置,開啟你自己資料庫例項名的協議,啟用tcp ip 3.雙擊開啟 tcp ip 檢視 tcp ip屬性 下 協議 選項卡中的 全部偵聽 和 ...

SQL Server 遠端連線問題

1.如何配置sqlserver使之能夠遠端被訪問,網上搜一大把,如 sql server 2008 r2如何開啟資料庫的遠端連線 2.儘管是配置好了,但是還是經常會出現不能訪問的問題,可參考 sql 配置sqlserver 使其可以遠端訪問 如,我在路由器上配置了對映埠,外部訪問我的電腦10086埠...

SQL server的遠端連線

找到sql server 的配置管理器,找不到?開啟 點選開啟鏈結 sql server 網路配置下,找到mssqlserver的協議 右擊tcp ip,找到ip3,輸入自己本機的ip位址 不知 找的看 最下面一幅 tcp埠是1433,已啟用該成是,點選 應用 確定 如果之前開啟過資料庫了,記得先關...