close

 

使用SQL語法

連接建立完成之後,則可以開始使用QsqlQuery執行資料庫支持的SQL語法,使用的方法為建立一個QSqlQuery 變數,然後再調用QSqlQuery::exec()函數。過程如下:

QSqlQuery query;

query.exec(“SELECT kind, elevaltor FROM automobile WHERE elevaltor >=120”);

 

在此還要提到的是,當使用了SELECT這個語法之後,其查詢的結果可由下面的方式獲得結果。

while (query.next()) {

QString kind = query.value(0).toString();

/*由於第一個搜尋的是kind,所以value(0)代表著kind搜尋結果*/

int elevaltor = query.value(1).toInt();

/*由於第二個搜尋的是elevaltor,所以value(1)代表著elevaltor 搜尋結果*/

qDebug() << elevaltor << kinf << endl;

}

 

調用next()QSqlQuery定位到查詢返回的第一條紀錄,後續的next()調用每次將指標後移一條紀錄,直到紀錄尾端next()返回”false”

value()函數以QVariant類型返回一個字串的值。這些字串從0開始,按照SELECT語句指定的排列順序進行編號。

 

前面將SQL語法作為QSqlQuery::exec()的參數,但同樣也可以直接傳給結構函數,從而使得該句立即被執行,如:

QSqlQuery  query.exec(“SELECT kind, elevaltor FROM automobile WHERE elevaltor >=120”);

 

還可以通過調用isActive()檢查執行錯誤。

if (!query.isActive())

        QMessageBox::warning(this, tr(“DataBase error!”), query.lastError().text());

如果無錯誤則query為真,可以調用next()操作返回結果。

 

操作完成之後,如果調用numRowsAffected()函數將返回受SQL語法影響的行數,或者反回”-1”表示出錯。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 flykof 的頭像
    flykof

    十年磨一劍

    flykof 發表在 痞客邦 留言(1) 人氣()