自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

QT與數(shù)據(jù)庫連接實(shí)例

移動(dòng)開發(fā)
QT與數(shù)據(jù)庫連接實(shí)例與大家分享一下,數(shù)據(jù)庫的連接的時(shí)候一般都會(huì)出現(xiàn)一些曉得問題,如果你也出現(xiàn)過問題,那么本文將會(huì)幫你解決問題。

本文介紹的是QT數(shù)據(jù)庫連接實(shí)例,首先加載驅(qū)動(dòng)db=QSqlDatabase::addDatabase("QODBC","db"); // 使用odbc數(shù)據(jù)庫驅(qū)動(dòng),詳細(xì)內(nèi)容請看下文。

連接數(shù)據(jù)庫需要的頭文件:

  1. #include <QSqlDatabase> 
  2. #include <QSqlQuery> 

1、連接微軟的Access

 

  1. QSqlDatabase ldb = QSqlDatabase::addDatabase("QODBC");  
  2. ldb.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=system.mdb;UID=;PWD=xiaozhuset");  
  3. bool ok = ldb.open();  
  4. //新定義一個(gè)查詢集合,并指定 鏈接關(guān)鍵字。 如果有多個(gè)連接,可以隨意指定一個(gè)你需要的。  
  5. QSqlQuery mquery=QSqlQuery::QSqlQuery(ldb);          
  6. if(ok)  
  7. {  
  8. bool isok=mquery.exec("select * from sql_set;");  
  9. if (!isok)  
  10. {  
  11. ldb.close();  
  12. return -1;  
  13. }         
  14. //這個(gè)是必須的,因?yàn)椴樘幍慕Y(jié)果集當(dāng)前位置不在***條記錄上。  
  15. mquery.next();  
  16. QString sHostName=mquery.value(1).toString();  
  17. QString sDatabaseName=mquery.value(2).toString();  
  18. QString sUserName=mquery.value(3).toString();  
  19. QString sPassword=mquery.value(4).toString();  
  20. //清除結(jié)果集  
  21. mquery.clear();  
  22. // 如果該連接不再使用,就可以關(guān)閉。  
  23. ldb.close();  
  24. //這里是將從數(shù)據(jù)庫讀出的數(shù)據(jù)寫到一個(gè)list控件里  
  25. ui.list_out->insertItem(ui.list_out->count(),sHostName);  
  26. ui.list_out->insertItem(ui.list_out->count(),sDatabaseName);      
  27. }  
  28. else  
  29. {   
  30. // 打開本地?cái)?shù)據(jù)庫失敗,  
  31. QMessageBox::critical(0, QObject::tr("讀取Access數(shù)據(jù)庫錯(cuò)誤!"),db.lastError().text());  
  32. return -1;  
  33. }     

2、連接mssql2000 數(shù)據(jù)庫

  1. QString strDatabaseName = QString("DRIVER={SQL Server};Server=(%1);Database=%2").arg("local").arg(sDatabaseName);      
  2. db=QSqlDatabase::addDatabase("QODBC","db"); // 使用odbc數(shù)據(jù)庫驅(qū)動(dòng)   
  3. db.setHostName(sHostName);  
  4. db.setPort(1433);  
  5. db.setDatabaseName(strDatabaseName); // 我們之前建立的數(shù)據(jù)庫連接關(guān)鍵字  
  6. db.setUserName(sUserName);   
  7. db.setPassword(sPassword);   
  8. bool ok = db.open(); //嘗試連接數(shù)據(jù)庫  
  9. if(ok)  
  10. {   
  11. menuset_set->dbdb=db;   // 這里用sa已經(jīng)成功連上數(shù)據(jù)庫     
  12. return 0;  
  13. }  
  14. else  
  15. {   
  16. // 打開數(shù)據(jù)庫失敗,  
  17. QMessageBox::critical(0, QObject::tr("數(shù)據(jù)庫連接錯(cuò)誤!"),db.lastError().text());  
  18. return -2;  
  19. }          
  20. mssql2000數(shù)據(jù)庫連接的使用和Access連接使用方法一樣。  
  21. QSqlQuery mquery=QSqlQuery::QSqlQuery(db);     
  22. bool ok1=mquery.exec("select * from CarteMenu;");  
  23. if (ok1==false)return -1;  
  24. QString menu_mkey=mquery.value(13).toString();  
  25. QString strmenu_lang=mquery.value(3).toString();  
  26. //清除結(jié)果集  
  27. mquery.clear(); 

3、連接mysql 數(shù)據(jù)庫

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql數(shù)據(jù)庫驅(qū)動(dòng)   
  2. db.setHostName("localhost");  
  3. db.setDatabaseName("exampledb"); // 數(shù)據(jù)庫名稱  
  4. db.setUserName("sa"); // 用戶名  
  5. db.setPassword("1"); // 密碼  
  6. bool ok = db.open(); // 嘗試連接數(shù)據(jù)庫  
  7. if(ok)  
  8. {   
  9. QSqlQuery myquery;   
  10. if(myquery.exec("select * from employeedb"))  
  11. {   
  12. int num = 0;   
  13. if(db.driver()->hasFeature(QSqlDriver::QuerySize))  
  14. {  
  15. num = myquery.size(); // 如果支持結(jié)果影響的行數(shù),那么直接記錄下來  
  16. }  
  17. else  
  18. {  
  19. myquery.last(); //否則定位到結(jié)果***  
  20. num = myquery.at() + 1;  
  21. }  
  22. //這里添加數(shù)據(jù)庫的查詢結(jié)果處理操作  
  23. }   
  24. else // 如果查詢失敗  
  25. {   
  26. QSqlError error = myquery.lastError();  
  27. }  
  28. }  
  29. else // 打開數(shù)據(jù)庫失敗  
  30. {  

小結(jié):QT數(shù)據(jù)庫連接實(shí)例的內(nèi)容介紹完了,對(duì)于數(shù)據(jù)庫,本人覺得連接時(shí)要慎重點(diǎn),好像很難連接似得,老是出錯(cuò),不顧本篇文章相信能幫你解決問題。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-05 10:16:16

Qt 數(shù)據(jù)庫 SQLite

2011-07-05 14:46:34

2011-08-30 14:38:50

QT數(shù)據(jù)庫

2011-06-21 15:31:04

Qt 數(shù)據(jù)庫 SQL

2011-06-27 13:32:21

Qt 數(shù)據(jù)庫 QSqlQueryM

2011-06-27 13:49:43

Qt 數(shù)據(jù)庫 QSqlQueryM

2011-07-05 16:08:10

2010-11-29 11:47:26

連接Sybase數(shù)據(jù)庫

2011-07-05 09:54:04

2011-07-05 18:04:45

QT Mysql

2010-06-01 14:42:55

連接MySQL數(shù)據(jù)庫

2011-07-05 18:11:13

Qt 數(shù)據(jù)庫

2011-06-10 10:31:57

QT mysql linux

2011-06-23 09:00:04

QT QODBC 數(shù)據(jù)庫

2011-07-05 10:03:00

Qt MYSQL 數(shù)據(jù)庫

2011-06-27 12:56:28

2009-07-29 09:12:31

ASP.NET數(shù)據(jù)庫連

2009-07-20 14:30:38

jdbc連接數(shù)據(jù)庫代碼

2009-12-31 11:10:01

2011-07-26 18:11:56

iPhone Sqlite 數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)