Otrzymanie wartości zmiennej z callback, sqlite3

0

Mam taką funkcje potrzebną do API 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;
}

i chcę otrzymać wartość zmiennej argv[i] po wykonaniu funkcji sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg); Jak to zrobić?

0

Albo może jest inny sposób aby otrzymać wynik polecenia SQL przez 'sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)' ?

1

Nie wiem co to znaczy "otrzymać wartość", bo przecież wyświetlasz już wszystkie wartości w tym callbacku. Jeśli chciałbyś przekazywać dalej te dane to możesz wykorzystać pierwszy parametr tego callbacka, tzn. podpiąć tam jakiegoś niestatycznego callbacka/względnie przesłać tam bezpośrednio obiekt, w którym zapiszesz sobie te dane.

Btw, o ile twój program nie jest trywialny to rozważ użycie sqlite3_prepare_v2 zamiast sqlite3_exec.

0

a jak użyć jej w praktyce aby otrzymał wyniki zapytania sql?

int sqlite3_prepare_v2(
  sqlite3 *db,            /* Database handle */
  const char *zSql,       /* SQL statement, UTF-8 encoded */
  int nByte,              /* Maximum length of zSql in bytes. */
  sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
  const char **pzTail     /* OUT: Pointer to unused portion of zSql */
);
0

Juz udalo mi sie to zrobic.

1 użytkowników online, w tym zalogowanych: 0, gości: 1