使用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”表示出錯。
留言列表