0

テーブルとデータベースに同じ名前を付けましたが、そのようなテーブルが見つからないというエラーが発生しています。

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);
}

前もってありがとう


ダミー型を使用すると、単純なクラスではうまくいくかもしれませんが、物事がより複雑になるとうまくいきません。

あなたのクラスが次のように「続く」と想像してみましょう:

template<class T>
class TemplatedClass {
public:
    static const int static_member = 10;
    typedef typename std::enable_if< std::is_integral< T >::value >::type type;
};

このコードは、Tが非整数型であってはならないことを示しています。

更新 (jogojapan に感謝): そのため、場合によっては、どの型もダミーとして使用できないことがあります。

4

2 に答える 2

0

データベースファイルがバンドルされており、バンドルからではなく、documentDirectory からデータベースを取得していると思います!!!!

次のようにパスを変更できます

 NSString *documentPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"locations.sqlite"];
于 2013-02-13T06:28:28.837 に答える