2011-11-08 11 views
-2

私はこれをacieveできtable.how内の行の合計なしを取得したい...qtでmysqlのcount関数を使用するには?

iは

を次のようにコードを書いた

QSqlDatabaseデシベル= QSqlDatabase :: addDatabase( "QMYSQL");私は私のテーブル内の行の合計なしを取得したいと整数に保存したいカウントcammand.whatを使用

db.setHostName("localhost"); 
db.setDatabaseName("Dictionary"); 
db.setUserName("root"); 
db.setPassword("cinesoft"); 
bool ok = db.open(); 

int ID; 
//SELECT COUNT(*) FROM icecream 
QString IDnosql="SELECT * FROM Dictionary.TABLE_ENGLISH"; 

if(ok) 
{ 
    QSqlQuery IDquery(db); 
    IDquery.prepare(IDnosql); 
    int Id=IDquery.numRowsAffected(); 
    IDquery.exec(); 

    // int Id=IDquery.numRowsAffected(); 
    QMessageBox::information(0,"sucess",QString::number(Id)); 

} 

くれ

を助けてください、それは次にあなたが整数に結果を変換する必要がテーブルにAあなたは、単に

SELECT count(*) from A; 

を行の合計数を取得するには

答えて

4

クエリSELECT COUNT(*) from Dictionary.TABLE_ENGLISHを使用しないと、テーブルの行数がわかりません。結果セットからこの値を取得し、整数変数に格納します。

6

あなたはCOUNTコマンドでQSqlQueryを準備することができます:詳細

+0

あまりにもwebclectic ....ありがとう –

1

COUNT文を使用している場合、あなたはQSqlQueryを使用することができるため

QSqlQuery q; 
q.prepare(QString("SELECT COUNT (*) FROM %1").arg(tableName)); 
q.exec(); 
int rows= 0; 
if (q.next()) { 
     rows= q.value(0).toInt(); 
} 

チェックQSqlQuery ::値(int型のインデックス)を選択するときのように単一の値:

QString IDnosql="SELECT COUNT(*) FROM Dictionary.TABLE_ENGLISH"; 

if(ok) 
{ 
    QSqlQuery IDquery(db); 
    IDquery.prepare(IDnosql); 

    if(!IDquery.exec()) 
    { 
     // TODO: perform error handling here! 
    } 
    if(!IDquery.next()) 
    { 
     // TODO: Error handling: Query did not return a result (no row, which should not be possible when using a count statement as you would always get 1 row) 
    } 

    int Id = IDquery.value(0).toInt(); 

    QMessageBox::information(0,"sucess",QString::number(Id)); 

} 
関連する問題