前提:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、新蔡網(wǎng)站維護(hù)、網(wǎng)站推廣。
SQL Server里已經(jīng)建立了相應(yīng)的數(shù)據(jù)庫(kù),有對(duì)應(yīng)的表和數(shù)據(jù)。
步驟:
1. Qt里新建一個(gè)空工程,添加main.cpp文件。
2. 在工程文件(.pro文件)添加一行:QT += sql。
3. 該敲代碼了,代碼如下:
[cpp] view plain copy
#include QtGui
#include QString
#include QTextCodec
#include QSqlDatabase
#include QtSql
/*連接數(shù)據(jù)庫(kù)*/
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)址:
也可以通過(guò)如下代碼測(cè)試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ù)庫(kù)類型
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. 若是沒(méi)有編譯,可以手動(dòng)編譯了qt的ODBC插件。
可以通過(guò)編譯qt的時(shí)候加上 configure -plugin-sql-odbc來(lái)保證,也可以單獨(dú)編譯qt安裝包里的~\src\plugins\sqldrivers\odbcqmake -t vclib odbc.pronmake (注:windows中為mingw32-make)編譯后,在~\plugins\sqldrivers\下應(yīng)該有qsqlodbcd4.dll(debug)或qsqlodbc4.dll
此時(shí),可以用下面的程序,測(cè)試一下你T目前支持哪些數(shù)據(jù)庫(kù)訪問(wèn)。
二、連接SQLServer
要注意的就是連接數(shù)據(jù)庫(kù)時(shí)使用的數(shù)據(jù)庫(kù)名,sqlserver和sqlite、mysql等是不同的,并不是直接寫入數(shù)據(jù)庫(kù)名稱。 而是DSN名。 如果你已經(jīng)設(shè)置好了DSN,可以直接輸入DSN名。 如果沒(méi)有,可以采用DSN連接字符串直接連接ODBC數(shù)據(jù)庫(kù)。
1、直接設(shè)定DSN的字符串連接數(shù)據(jù)庫(kù),很簡(jiǎn)單。
/**
*函數(shù)介紹:創(chuàng)建數(shù)據(jù)庫(kù)連接
*輸入?yún)?shù):
*返回值:無(wú)
*/
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();
// 注意,對(duì)于express版本數(shù)據(jù)庫(kù), 一定要加\\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ù)庫(kù)服務(wù)器,我這里不需要
//即使dsn中已經(jīng)設(shè)置了UID和PASSWD,仍然需要執(zhí)行setUserName和setPassword的步驟
//還要注意這里的用戶名要有創(chuàng)建表的權(quán)限,不然創(chuàng)建下面的表student會(huì)不成功。
db.setDatabaseName(dsn); //數(shù)據(jù)庫(kù)名
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ù)庫(kù)
1、打開(kāi)sqlserver的企業(yè)管理器或者是SQL server Management Studio
2、服務(wù)器類型選擇:數(shù)據(jù)庫(kù)引擎
3、服務(wù)器名稱輸入:localhost或是本機(jī)ip
4、身份驗(yàn)證選擇:如果沒(méi)開(kāi)混合驗(yàn)證,選windows身份驗(yàn)證;如果開(kāi)了混合驗(yàn)證,可以用windows身份登錄,也可選選擇SQL server身份驗(yàn)證。
5、選了SQLserver身份認(rèn)證需要輸入SQL已經(jīng)定義的用戶名和密碼。
qt可以使用odbc驅(qū)動(dòng)去連接sqlserver,先配置好odbc數(shù)據(jù)源,然后在qt里面調(diào)用數(shù)據(jù)源即可連接;
連接長(zhǎng)時(shí)間不操作是可能會(huì)斷開(kāi),檢查數(shù)據(jù)庫(kù)的配置連接時(shí)間,一般會(huì)有時(shí)間限制,建議你程序啟動(dòng)需要和數(shù)據(jù)庫(kù)交互時(shí),先判斷數(shù)據(jù)庫(kù)是否是連接狀態(tài),未連接時(shí)重新連接
標(biāo)題名稱:關(guān)于qt與sqlserver的信息
文章分享:http://chinadenli.net/article24/phjoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、標(biāo)簽優(yōu)化、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、微信小程序、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)