2

グループのデータをクエリで取得し、テキストフィールドにロードしたいと考えています。これが私のテーブルの整数です ID 名前 テキスト 期間 リアルタイム リアル 名前列に名前がほとんどありません 名前ごとにメソッドを呼び出してみましたが、挿入に失敗しました。

このクエリを受け取り、特定のラベルに結果をロードしたい: 応答を取得する方法がわからない

SELECT  Name,SUM (time) FROM  cost GROUP BY Name;

私の現在のコードがあります

 NSString *docsDir;
NSArray *dirPaths;

 double totaltime = 1.0;

// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = dirPaths[0];

// Build the path to the database file
databasePath = [[NSString alloc]
                initWithString: [docsDir stringByAppendingPathComponent:
                                 @"Database.db"]];


NSString *queryString=@"SELECT SUM(DURATION) AS TOTAL FROM RECORDS";
sqlite3_stmt    *statement;

if(sqlite3_open([databasePath UTF8String], &myDatabase) == SQLITE_OK) {

    if(sqlite3_prepare_v2(myDatabase, [queryString UTF8String], -1, &statement, nil) == SQLITE_OK){
        while (sqlite3_step(statement) == SQLITE_ROW) {
             totaltime =  sqlite3_column_double(statement, 0);
            NSLog(@"The sum is  %f ", totaltime);
        }
    }
}
integer_t intotal=totaltime;
NSString* total=[NSString stringWithFormat:@"%d min",intotal];
totaltimefield.text=total;
4

1 に答える 1

2

これはすべてドキュメントでうまくカバーされていますが、要するに、SQL を更新して 2 つの列を持つようにすると、次のようになります。

const unsigned char* name = sqlite3_column_text(statement, 0);
double totaltime =  sqlite3_column_double(statement, 1);
NSLog(@"The sum for %s is  %f ", name, totaltime);

関数の 2 番目のパラメーターsqlite3_column_xは列番号です。

于 2013-07-25T15:23:14.560 に答える