Получить количество строк таблицы SQL с переполнением стека

Я новичок в C ++ с sqlite3 на Ubuntu.

Я хотел бы получить количество строк в таблицах SQL, поэтому я хочу выполнить эту команду «SELECT COUNT (*) FROM Table» в C ++, чтобы я мог использовать это количество строк в других методах.

3

Решение

API c / c ++ использует обратные вызовы, как описано в документация. Вы можете передавать значения между обратным вызовом и основным кодом, используя аргумент * pArg. Я немного изменил код в их документации, чтобы получить количество строк.

#include <stdio.h>
#include <sqlite3.h>

static int callback(void *count, int argc, char **argv, char **azColName) {
int *c = count;
*c = atoi(argv[0]);
return 0;
}

int main(int argc, char **argv) {
sqlite3 *db;
char *zErrMsg = 0;
int rc;
int count = 0;

rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
rc = sqlite3_exec(db, "select count(*) from mytable", callback, &count, &zErrMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
printf("count: %d\n", count);
}
sqlite3_close(db);
return 0;
}
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]