成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

QT數(shù)據(jù)庫連接操作基本學習教程

移動開發(fā)
本文介紹的是QT數(shù)據(jù)庫連接操作 數(shù)據(jù)庫基本學習,作為程序員我們都知道,數(shù)據(jù)庫是必不可少的,那么本文簡單的介紹數(shù)據(jù)庫,然后再深入的介紹,先來看內容。

QT數(shù)據(jù)庫連接操作 數(shù)據(jù)庫基本學習,QT連接數(shù)據(jù)庫 是應用開發(fā)的常用基礎操作。經(jīng)過實驗,我總結了一些例程。這些例程可以連接各種數(shù)據(jù)庫。ps:這里只是我覺得好用的方法。QT另外提供了更高級的方法,如有需要請自己嘗試。先來學習如何連接數(shù)據(jù)庫.

連接數(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. /新定義一個查詢集合,并指定 鏈接關鍵字。 如果有多個連接,可以隨意指定一個你需要的。  
  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.  
  15.    //這個是必須的,因為查處的結果集當前位置不在第一條記錄上。  
  16.     mquery.next();  
  17.  
  18.     QString sHostName=mquery.value(1).toString();  
  19.     QString sDatabaseName=mquery.value(2).toString();  
  20.     QString sUserName=mquery.value(3).toString();  
  21.     QString sPassword=mquery.value(4).toString();  
  22.       
  23.    //清除結果集  
  24.     mquery.clear();  
  25.  // 如果該連接不再使用,就可以關閉。  
  26.     ldb.close();  
  27.  
  28.    //這里是將從數(shù)據(jù)庫讀出的數(shù)據(jù)寫到一個list控件里  
  29.     ui.list_out->insertItem(ui.list_out->count(),sHostName);  
  30.     ui.list_out->insertItem(ui.list_out->count(),sDatabaseName);      
  31.              
  32. }  
  33. else  
  34. {   
  35.     // 打開本地數(shù)據(jù)庫失敗,  
  36.     QMessageBox::critical(0, QObject::tr("讀取Access數(shù)據(jù)庫錯誤!"),db.lastError().text());  
  37.     return -1;  
  38. }     

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

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

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

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql數(shù)據(jù)庫驅動   
  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(); // 如果支持結果影響的行數(shù),那么直接記錄下來  
  16.            }  
  17.          else  
  18.          {  
  19.               myquery.last(); //否則定位到結果最后  
  20.               num = myquery.at() + 1;  
  21.           }  
  22.           //這里添加數(shù)據(jù)庫的查詢結果處理操作  
  23.  
  24.     }   
  25.     else // 如果查詢失敗  
  26.     {   
  27.            QSqlError error = myquery.lastError();  
  28.      }  
  29.  }  
  30.  else // 打開數(shù)據(jù)庫失敗  
  31. {  

小結:QT數(shù)據(jù)庫連接操作 數(shù)據(jù)庫基本學習的內容介紹完了,希望本篇文章能夠幫助你學習,想要深入了解數(shù)據(jù)庫的話,請參考編輯推薦!

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

2011-07-05 18:11:13

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

2011-07-05 10:16:16

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

2011-08-30 12:59:52

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

2011-07-01 13:42:24

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

2011-07-05 14:46:34

2011-06-21 15:11:04

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

2011-06-21 15:31:04

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

2011-07-05 09:54:04

2011-08-30 14:25:06

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

2009-06-15 13:59:00

netbeans6.1入門教程

2011-06-27 13:32:21

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

2011-06-27 13:49:43

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

2010-05-28 14:51:47

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

2011-08-30 14:38:50

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

2011-06-10 10:31:57

QT mysql linux

2011-07-05 10:03:00

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

2011-06-23 09:00:04

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

2010-03-04 13:47:13

Python操作Acc

2011-07-05 18:04:45

QT Mysql

2011-07-01 10:03:52

QT 數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.色.com | 精品一区二区三区四区五区 | 久久久精品一区二区三区四季av | 一区二区视频在线 | 第一区在线观看免费国语入口 | 1204国产成人精品视频 | 日韩伦理一区二区 | 精品在线一区二区三区 | www.亚洲一区二区 | 久久6| 午夜影院视频在线观看 | 伊人网99| 热久久性 | 日本韩国欧美在线观看 | 日本久久精品视频 | 日本不卡一区 | a级黄色片在线观看 | 又黄又爽的网站 | ririsao久久精品一区 | 日韩在线大片 | .国产精品成人自产拍在线观看6 | 一区二区三区免费观看 | 在线免费观看毛片 | 日本精品一区二区三区在线观看视频 | 人人艹人人爽 | 日韩一级二级片 | 午夜婷婷激情 | 国产一区二区在线视频 | 人人干人人看 | 毛片软件 | 久久国产精品99久久久大便 | 久久国色 | 日韩在线不卡视频 | 久久久久国产一区二区三区四区 | 成人免费观看男女羞羞视频 | av中文字幕在线 | 日韩午夜电影在线观看 | 亚洲人成在线播放 | 国产综合精品一区二区三区 | 91在线免费视频 | 成人影院在线 |