Функция sqlite3_open вместо открытия файла БД создает - PullRequest
0 голосов
/ 22 декабря 2019

У меня есть следующий код, и когда я компилирую его в терминале, он возвращает сообщение «Ошибка SQL». Я думаю, что функция sqlite3_open не открывает базу данных, а вместо этого создает новую каждый раз, а функция обратного вызова не вызывается.OS - это macos.

#include <stdio.h>
#include <sqlite3.h>
static int my_special_callback(void *unused, int count, char **data, char **columns)
{
    int idx;

    printf("There are %d column(s)\n", count);

    for (idx = 0; idx < count; idx++) {
        printf("The data in column \"%s\" is: %s\n", columns[idx], data[idx]);
    }

    printf("\n");

    return 0;
}

int main(int argc, const char * argv[]) {
    sqlite3* db;

    int rc = sqlite3_open ("test.db", &db); 

    if (rc)                                        
    {
        fprintf(stderr, "error: %s\n", sqlite3_errmsg (db));
        return 0;
    }
    else{
        printf("DB\n");
    }

   rc = sqlite3_exec(db, "SELECT * FROM user", my_special_callback, 0, NULL);
    if( rc != SQLITE_OK ) {
       fprintf(stderr, "SQL error: \n");
    } else {
       fprintf(stdout, "Operation done successfully\n");
    }

    sqlite3_close(db);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...