SQLITE – получение ошибки 21 при использовании sqlite3_prepare_v2()Linux

Ответить
Anonymous
 SQLITE – получение ошибки 21 при использовании sqlite3_prepare_v2()

Сообщение Anonymous »

Библиотека SQLITE3 возвращает ошибку 21 (SQLITE_MISUSE), когда я вызываю sqlite3_prepare_v2()
https://www.sqlite.org/rescode.html#misuse
Вот мой ( очень тривиальный код).
Оператор, который я хочу выполнить:
CREATE TABLE 'T_COMPANY' ('ID' INTEGER NOT NULL, ТЕКСТ «ИМЯ» NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ (АВТОИНКРЕМЕНТ «ID»)
Запрос составлен правильно по верхнему коду, что подтверждает журнал, который я создаю:

Код: Выделить всё

- SQLITE prepare statement error.
- Error code: 21
- Statement:
CREATE TABLE 'T_COMPANY' ('ID' INTEGER NOT NULL,'NAME' TEXT NOT NULL, PRIMARY KEY('ID' AUTOINCREMENT))
- Address: (nil)

static int sqlInitDatabase(sqlite3 *pDb, const char *dbfile)
{
int rc;

if(SQLITE_OK != (rc = sqlite3_initialize())) {
fprintf(stderr, "- Error initializing SQLITE engine. Error code: %d\n Aborting.\n", rc);
return rc;
}

if(SQLITE_OK != (rc = sqlite3_open_v2(dbfile, &pDb, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL))) {
fprintf(stderr, "- Fail to load or create DB file %s.\n- Error code: %d\n Aborting.\n", dbfile, rc);
return rc;
}

return rc;
}

static void sqlCloseDatabase(sqlite3 *pDb)
{
if(pDb != NULL) {
sqlite3_close(pDb);
sqlite3_shutdown();
}
}

int sqlDeployDatabase(char *name)
{
sqlite3 *pDb;
sqlite3_stmt *stmt;
char *query;
int rc;

if(name == NULL || strcmp(name, "") == 0) {
fprintf(stderr, "- Database name cannot be empty.\n- Aborting\n");
return -1;
}

if(SQLITE_OK != (rc = sqlInitDatabase(pDb, name))) {
return rc;
}

for(int i = 0; i 

Подробнее здесь: [url]https://stackoverflow.com/questions/79174531/sqlite-getting-error-21-when-using-sqlite3-prepare-v2[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»