#include int main(int argc, char* argv[]) { sqlite3 *db;" />

SQlite3 и создание базы данных

19 просмотра

1 ответ

почему этот оператор, rc= sqlite3_open("file.db",&db)где rc является целочисленной переменной, всегда возвращает ноль ??? это код

    #include <stdio.h>
    #include <sqlite3.h> 

    int main(int argc, char* argv[])
     {
       sqlite3 *db;
       char *zErrMsg = 0;
       int rc;

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

       if( rc ){
       fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
       return(0);
     }
        else
      {
       fprintf(stderr, "Opened database successfully\n");
     }
       sqlite3_close(db);
    }

разве он не должен возвращать 1 (true) в случае успешного создания базы данных ???

Автор: krishnan sri Источник Размещён: 08.11.2019 10:56

Ответы (1)


0 плюса

Решение

Возвращаемое значение не является логическим; Вы никогда не должны сравнивать с 0или 1.

В документации сказано:

Если база данных открыта (и / или создана) успешно, то возвращается SQLITE_OK . В противном случае возвращается код ошибки .

Автор: CL. Размещён: 20.08.2016 06:19
Вопросы из категории :
32x32