2013年1月27日日曜日

[SQLite][SQL]sqlite3_get_table

sqlite3_exec() に callback 関数を登録する以外にテーブルのデータ一覧を取得する方法として sqlite3_get_table() がある
char **azResult;
int row, column;
int i, j;

rc = sqlite3_get_table(db, argv[2], &azResult, &row, &column, &zErrMsg);
if (rc != SQLITE_OK) {
    fprintf(stderr, "SQL error: %s\n", zErrMsg);
    sqlite3_free(zErrMsg);
}
printf("row=%d column=%d\n", row, column);
for (i = 0; i <= row; i++) {
    for (j = 0; j < column; j++) {
        printf("[%d,%d] %s ", i, j, azResult[(i * column + j)]);
    }
    printf("\n");
    if (i == 0) {
        printf("-----------------------------\n");
    }
}
sqlite3_free_table(azResult);
実行結果
row=3 column=2
[0,0] ID [0,1] NAME
-----------------------------
[1,0] 1 [1,1] 1st
[2,0] 2 [2,1] 2nd
[3,0] 3 [3,1] 3rd

0 件のコメント:

コメントを投稿