關(guān)于qt與sqlserver的信息

qt怎么連接sqlserver

前提:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、新蔡網(wǎng)站維護(hù)、網(wǎng)站推廣。

SQL Server里已經(jīng)建立了相應(yīng)的數(shù)據(jù)庫,有對應(yīng)的表和數(shù)據(jù)。

步驟:

1. Qt里新建一個空工程,添加main.cpp文件。

2. 在工程文件(.pro文件)添加一行:QT += sql。

3. 該敲代碼了,代碼如下:

[cpp] view plain copy

#include QtGui

#include QString

#include QTextCodec

#include QSqlDatabase

#include QtSql

/*連接數(shù)據(jù)庫*/

void OpenDatabase()

{

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

db.setDatabaseName(QString("DRIVER={SQL SERVER};"

"SERVER=%1;"

"DATABASE=%2;"

"UID=%3;"

"PWD=%4;").arg("QIAN-PC")

.arg("StuManager")

.arg("sa")

.arg("123456"));

if (!db.open())

{

QMessageBox::warning(0, qApp-tr("Cannot open database"),

db.lastError().databaseText(), QMessageBox::Cancel);

}

else

{

qDebug()"Connect to Database Success!";

}

}

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

/*設(shè)置編碼格式*/

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

OpenDatabase();

QDialog *mainDialog = new QDialog;

QTableView *tableView = new QTableView;

QHBoxLayout *layout = new QHBoxLayout;

layout-addWidget(tableView);

mainDialog-setLayout(layout);

QSqlQueryModel *model = new QSqlQueryModel;

model-setQuery(QObject::tr("select * from 教師"));

tableView-setModel(model);

mainDialog-adjustSize();

mainDialog-show();

return a.exec();

}

4. 看看運(yùn)行結(jié)果吧。

參考網(wǎng)址:

linux qt連接sqlserver怎么配置服務(wù)器

也可以通過如下代碼測試qt5是否支持SqlServer

#include QApplication

#include QSqlDatabase

#include QStringList

#include QDebug

int main(int argc, char* argv[])

{

QApplication app(argc, argv);

qDebug() "Available drivers:";

QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers) //列出Qt5所有支持的數(shù)據(jù)庫類型

qDebug() "\t" driver;

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

qDebug() "ODBC driver valid?" db.isValid(); //true為支持

}

輸出結(jié)果如下:

"QSQLITE""QMYSQL""QMYSQL3""QODBC""QODBC3""QPSQL""QPSQL7"ODBC driver valid? true

2. 若是沒有編譯,可以手動編譯了qt的ODBC插件。

可以通過編譯qt的時候加上 configure -plugin-sql-odbc來保證,也可以單獨(dú)編譯qt安裝包里的~\src\plugins\sqldrivers\odbcqmake -t vclib odbc.pronmake (注:windows中為mingw32-make)編譯后,在~\plugins\sqldrivers\下應(yīng)該有qsqlodbcd4.dll(debug)或qsqlodbc4.dll

此時,可以用下面的程序,測試一下你T目前支持哪些數(shù)據(jù)庫訪問。

二、連接SQLServer

要注意的就是連接數(shù)據(jù)庫時使用的數(shù)據(jù)庫名,sqlserver和sqlite、mysql等是不同的,并不是直接寫入數(shù)據(jù)庫名稱。 而是DSN名。 如果你已經(jīng)設(shè)置好了DSN,可以直接輸入DSN名。 如果沒有,可以采用DSN連接字符串直接連接ODBC數(shù)據(jù)庫。

1、直接設(shè)定DSN的字符串連接數(shù)據(jù)庫,很簡單。

/**

*函數(shù)介紹:創(chuàng)建數(shù)據(jù)庫連接

*輸入?yún)?shù):

*返回值:無

*/

bool DataAccess::createConnection()

{

QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers)

qDebug() "\t" driver;

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

qDebug() "ODBC driver valid?" db.isValid();

// 注意,對于express版本數(shù)據(jù)庫, 一定要加\\sqlexpress這種后綴 SERVER=58.67.161.109\\sqlexpress

QString dsn = "DRIVER={SQL SERVER};SERVER=58.67.161.109;DATABASE=RDBS;UID=RDBS_USER;PWD=RDBS_USER_;";

db.setHostName("58.67.161.109"); //數(shù)據(jù)庫服務(wù)器,我這里不需要

//即使dsn中已經(jīng)設(shè)置了UID和PASSWD,仍然需要執(zhí)行setUserName和setPassword的步驟

//還要注意這里的用戶名要有創(chuàng)建表的權(quán)限,不然創(chuàng)建下面的表student會不成功。

db.setDatabaseName(dsn); //數(shù)據(jù)庫名

db.setUserName("RDBS_USER");//登錄名,我再dsn里設(shè)置UID和PWD后,就不需要設(shè)置了

db.setPassword("RDBS_USER_");//密碼,我再dsn里設(shè)置UID和PWD后,就不需要設(shè)置了

if(!db.open ())

{

QSqlError error = db.lastError();

QMessageBox::warning (0, "Warning", QString("Failed to open database!Error:%1").arg(error.text()));

returnfalse;

}

returntrue;

}

如何在arm嵌入板上用QT連接sqlserver數(shù)據(jù)庫

如何在arm嵌入板上用QT連接sqlserver數(shù)據(jù)庫

1、打開sqlserver的企業(yè)管理器或者是SQL server Management Studio

2、服務(wù)器類型選擇:數(shù)據(jù)庫引擎

3、服務(wù)器名稱輸入:localhost或是本機(jī)ip

4、身份驗(yàn)證選擇:如果沒開混合驗(yàn)證,選windows身份驗(yàn)證;如果開了混合驗(yàn)證,可以用windows身份登錄,也可選選擇SQL server身份驗(yàn)證。

5、選了SQLserver身份認(rèn)證需要輸入SQL已經(jīng)定義的用戶名和密碼。

如何用qt對sqlserver數(shù)據(jù)庫

qt可以使用odbc驅(qū)動去連接sqlserver,先配置好odbc數(shù)據(jù)源,然后在qt里面調(diào)用數(shù)據(jù)源即可連接;

QT連接sqlserver數(shù)據(jù)庫問題

連接長時間不操作是可能會斷開,檢查數(shù)據(jù)庫的配置連接時間,一般會有時間限制,建議你程序啟動需要和數(shù)據(jù)庫交互時,先判斷數(shù)據(jù)庫是否是連接狀態(tài),未連接時重新連接

標(biāo)題名稱:關(guān)于qt與sqlserver的信息
文章分享:http://muchs.cn/article24/phjoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、標(biāo)簽優(yōu)化、商城網(wǎng)站、移動網(wǎng)站建設(shè)微信小程序、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管