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