iPhone sqlite3 - sqlite3_prepare_v2 возвращает код ошибки 26 - PullRequest
0 голосов
/ 30 апреля 2010

Я использую файл базы данных sqlite3 в своем проекте iPhone App для чтения во время выполнения. Во-первых, для целей разработки я создал файл на своем рабочем столе с помощью Navicat для SQLite.

Чтение этого файла с использованием этого кода работает:

NSString *strTest = [NSString stringWithString:@"select tbl_name from sqlite_master"]; 
const char *sql_test = [strTest UTF8String];
sqlite3_stmt *statement_test;
returnval = sqlite3_prepare_v2(database, sql_test, -1, &statement_test, NULL);
NSString *strerr = [NSString stringWithCString:sqlite3_errmsg(database)];
NSLog(@"\n\nTabellen in DB [%@] (Error:%d Description:%@)\n",path,returnval,strerr);
while (sqlite3_step(statement_test) == SQLITE_ROW) {
 NSString *table = [NSString stringWithUTF8String:(char   *)sqlite3_column_text(statement_test, 0)];
 NSLog(@"%@\n",table);
}
sqlite3_finalize(statement_test);

Использование файла, созданного компанией-партнером с использованием PHP, не работает. Парень сказал, что он просто создал его с помощью PhP. К сожалению, это все, что я знаю на данный момент, но я постараюсь узнать об этом больше, чтобы вы, ребята, могли указать мне правильное направление.

С файлом от компании я получаю код ошибки 26 "файл зашифрован или не является базой данных"

В чем может быть причина такого поведения. Файл зашифрован? Компания-партнер сказала мне, что они не использовали сжатие из-за своих знаний. Или что-то может случиться с файлом другими способами? Может быть, он создан с неправильной версией sqlite? Они используют PHP5 настолько быстро, насколько я знаю.

Может быть, кто-то может помочь мне здесь :) Я знаю, что это не так много информации, и я постараюсь доставить больше.

1 Ответ

0 голосов
/ 30 апреля 2010

Проблема на самом деле заключалась в том, что команда партнеров создала файл sqlite 2.x вместо файла версии 3. Это заставило функцию sqlite3_prepare_v2 вернуть код ошибки 26.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...