У меня есть база данных sqlite со следующими данными:
[ouhma@testing ~]$ sqlite3 /home/ouhma/test.db "select col1, col2 from mytable;"
201507|9063104793
201507|9212527372
201507|9212533474
201507|9212575626
201507|9212576618
201507|9212587832
201507|9322355921
201507|9322743536
201507|9334886428
201507|9334901403
Но когда я пытаюсь сделать тот же запрос, запущенный в программе C таким образом:
if (sqlite3_open(filedb, &db) != SQLITE_OK) {
fprintf(stderr, "Error opening db: %s
", sqlite3_errmsg(db));
return EXIT_FAILURE;
}
char * sql = "select col1, col2 from mytable;";
iret = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (iret != SQLITE_OK) {
printf("Error SQLITE %d when preparing the query.
", iret);
return EXIT_FAILURE;
}
ncolumns = sqlite3_data_count(stmt);
printf("Columns: %d
", ncolumns);
if (ncolumns == 0) {
printf("No data :(
");
sqlite3_finalize(stmt);
return EXIT_SUCCESS;
}
...
Вместо того, чтобы возвращать те же строки, что и раньше, число данных равно нулю, а затем я не могу получить необходимую мне информацию.
[ouhma@testing ~]$ /home/ouhma/querydb2 /home/ouhma/query.txt /home/ouhma/test.db /home/ouhma/output.txt
Columns: 0
No data :(
Я проверил некоторые примеры C , и инструкция подготовки выглядит нормально.
Так что же я увольняю? Почему он возвращает 0 строк, если db содержит данные?
c,sqlite,sqlite3,