2014-02-11 1 views
2

Я новичок в C++ с sqlite3 на Ubuntu.Получить счетчик строк таблицы SQL с C++

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

+1

Вы что-то пробовали? –

+0

Да. Я выполнил ответ ниже. –

+1

Ответ может однажды помочь, концепция может помочь навсегда ... [взгляните на это] (http://www.sqlite.org/cintro.html), если вы еще этого не сделали. – bonCodigo

ответ

4

API c/C++ использует обратные вызовы, как описано в the documentation. Вы можете передавать значения между обратным вызовом и основным кодом, используя аргумент * 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); 
     printf("count: %d\n", count); 
    } 
    sqlite3_close(db); 
    return 0; 
} 
+0

Спасибо большое! Это то, что я хочу! :) –

+0

@VeraAung рад, что я мог бы помочь :), пожалуйста, отметьте этот ответ как правильный, если вы довольны им (зеленый галочка) – dwurf

 Смежные вопросы

  • Нет связанных вопросов^_^