Я новичок в мире C ++.
Я пытаюсь сохранить в переменную значение, содержащееся в созданной мной таблице sqlite, но я не знаю, как это сделать (я много изучаю, прежде чем спросить здесь).
Итак, после открытия соединения с БД я выполняю это:
char* sql = new char[4096];
strcpy(sql, statement.c_str());
/* Execute SQL statement */
int rc = sqlite3_exec(DB, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL ERROR: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
fprintf(stdout, "STATEMENT:\n\n%s\n\nEXECUTED SUCCESSFULLY!\n\n", statement.c_str());
}
И получаю это:
OPENED DATABASE SUCCESSFULLY
sent = 0
sent = 0
sent = 0
sent = 0
sent = 0
sent = 1
sent = 1
sent = 1
STATEMENT:
SELECT sent FROM Message;
EXECUTED SUCCESSFULLY!
Что я хочу сделать, это сохранить значение, содержащееся в «sent» (тип данных в БД - логическое) в переменных типа int, которыми я могу манипулировать, чтобы проверить некоторые условия. Или, может быть, сохранить все значения в массиве int.
Как я могу это сделать? Пожалуйста, помогите мне!
Большое спасибо!
РЕДАКТИРОВАТЬ: я использую библиотеку sqlite3.
И это моя функция обратного вызова:
static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
int i;
for(i = 0; i<argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}