2013-02-13 2 views
0

Я дал то же имя для таблицы и базы данных. Но я не получаю такую ​​таблицу найденной ошибки.Не получается ли такая таблица <table name> ошибка при получении данных из sqlite?

sqlite3 *dbConnection = nil; 
NSArray *documentDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *path = [documentDirectory objectAtIndex:0]; 
NSString *documentPath = [path stringByAppendingPathComponent:@"locations.sqlite"]; 
sqlite3_open([documentPath UTF8String], &dbConnection); 

sqlite3_stmt *statement = nil; 

@try { 
    if(sqlite3_open([documentPath UTF8String], &dbConnection)!=SQLITE_OK) 
    { 
     sqlite3_close(dbConnection); 
    } 
    else 
    { 

     //create editable database copy 

    } 
    NSString *selectQuery=[[NSString alloc] initWithFormat:@"select * from address_locations"]; 
    const char * retrieveQuery = [selectQuery UTF8String]; 

    if(sqlite3_prepare_v2(dbConnection,retrieveQuery, -1, &statement, nil)==SQLITE_OK) 
    { 
     while (sqlite3_step(statement)==SQLITE_ROW) 
     { 
      NSMutableDictionary * dictionaryAboutInfo = [[NSMutableDictionary alloc]init]; 
      [dictionaryAboutInfo setValue:[NSString stringWithFormat:@"%s",sqlite3_column_text(statement, 0)] forKey:@"ZIP"]; 
      [dictionaryAboutInfo setValue:[NSString stringWithFormat:@"%s",sqlite3_column_text(statement, 1)] forKey:@"LATITUDE"]; 
      [dictionaryAboutInfo setValue:[NSString stringWithFormat:@"%s",sqlite3_column_text(statement, 2)] forKey:@"LONGITUDE"]; 
      ////NSLog(@"Retrived Dict values %@",dictionaryAboutInfo); 
      [dealersInfoArray addObject:dictionaryAboutInfo]; 
      [dictionaryAboutInfo release]; 
     } 
    } 
    [selectQuery release]; 
} 
@catch (NSException *exception) { 

} 
@finally { 
    sqlite3_finalize(statement); 
    sqlite3_close(dbConnection); 
} 

Спасибо за заранее

+0

Вы понимаете ... если эта база данных не существует, она собирается создать новую, без таблиц? – borrrden

+0

@borrden: Да, когда я запускаю приложение im, получающее нулевой размер файла базы данных KB .. – Pavne

+0

Тогда есть ваша проблема. Как в пустой базе данных есть таблицы? – borrrden

ответ

0
BOOL success; 
NSFileManager *fileManager=[NSFileManager defaultManager]; 
success = [fileManager fileExistsAtPath:documentPath]; 
if (success) 
{ 
    NSLog(@"file found at the document path"); 
} 
//bundle path 
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"address_locations.sqlite"]; 
[fileManager copyItemAtPath:databasePathFromApp toPath:documentPath error:nil]; 

sqlite3_open ([documentPath UTF8String], & DBConnection);

+0

Я добавил этот код к вышеуказанному коду. Фактически моя проблема заключается в том, что файл Sqlite не копируется в каталог документа. Так, используя вышеприведенный код, я решил проблему .. – Pavne

0

Я думаю, что файл базы данных в связке, и вы запрашиваете базу данных из documentDirectory .. не из пучка !!!!

вы можете изменить путь, как

NSString *documentPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"locations.sqlite"]; 
Смежные вопросы