Я работаю над локализацией и приложением.Это включает перевод и базу данных SQLite.Я сделал 2 разные базы данных, одну для английского и одну для испанского.Приложение перед переводом (работает отлично) открывает базу данных следующим образом:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *databasePath = [documentsDir stringByAppendingPathComponent:@"fitnessencyclopedia102.sql"];
Чтобы правильно открыть каждую базу данных, этот поток помог мне, предложив мне открыть базу данных следующим образом:
NSArray *languagesArray = [NSLocale preferredLanguages];
NSString *currentLanguage = [languagesArray objectAtIndex:0];
NSString *pathComponent = [NSString stringWithFormat:@"%@.lproj/fitnessencyclopedia102.sql", currentLanguage];
NSString *databasePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:pathComponent];
Очевидно, что он работает нормально, но при попытке сделать запрос INSERT не работает.Я получаю состояние SQLITE_MISSUSE при попытке выполнить здесь:
strQuery = @"INSERT INTO TblWorkout (WorkoutTitle, UserID) VALUES( '";
strQuery =[strQuery stringByAppendingString:lstrWorkoutTitle];
strQuery =[strQuery stringByAppendingString:@"', "];
strQuery =[strQuery stringByAppendingString:[[GlobalSingleton sharedInstance]SelectedUserID]];
strQuery =[strQuery stringByAppendingString:@")"];
const char *sqlStatement = [strQuery UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
{
while(sqlite3_step(compiledStatement) == SQLITE_DONE)
Здесь я не могу войти в оператор while, потому что вместо SQLITE_DONE я получаю SQLITE_MISSUSE.Это почему??Я не могу понять, что происходит, я потерял целый день на этом ...
Обратите внимание, что я получаю SQLITE_DONE (работает нормально) при открытии базы данных с первым куском кода.Но тогда Локализация не будет работать.И при открытии базы данных со вторым фрагментом кода я получаю SQLITE_MISSUSE (не работает), но локализация работает нормально.