iphone FMDB tablosunu bulamıyorum

oy
0
- init
{
    if(![super init]) return nil;

    //the database is stored in the application bundle.
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *path = [documentsDirectory stringByAppendingFormat:@/base.sqlite];
    NSLog(@%@,path);
    db = [FMDatabase databaseWithPath:path];
    [db setLogsErrors:YES];

    if (![db open]) { 
        NSLog(@Could not open db.); 
        return 0; 
    } else { 
        NSLog(@DB Open....); 
    } 

    FMResultSet *rs = [db executeQuery:@SELECT * FROM settings]; 

    return self; 
}

o ı ayarlarından verilere erişmek için çalıştıkları için kullanmak kod. ama bu hata veriyor (ve ben bir ayar tablosu olduğunu size temin ederim!)

Burada terminalden bir dökümü

BEGIN TRANSACTION;
CREATE TABLE About (id integer PRIMARY KEY AUTOINCREMENT,key varchar UNIQUE,value text);
DELETE FROM sqlite_sequence;
CREATE TABLE settings (version integer,updated timestamp,owner varchar);
INSERT IGNORE  INTO settings VALUES(1,'2009-05-11 14:29:07','boulevart');
COMMIT;

ve hata:

2009-05-11 16:14:19.799 SummerGuide[9892:20b] /Users/andyjacobs/Library/Application Support/iPhone Simulator/User/Applications/762630F5-78CB-41A4-85C2-964316ACFE1D/Documents/base.sqlite
2009-05-11 16:14:19.801 SummerGuide[9892:20b] DB Open....
2009-05-11 16:14:19.804 SummerGuide[9892:20b] DB Error: 1 no such table: settings
2009-05-11 16:14:19.804 SummerGuide[9892:20b] DB Query: SELECT * FROM settings

i (dosya değil) hala diyor örnek /baseeeeee.sqlite için benim yolunu değiştirmek eğer garip bir şey DB Aç .... dir

Sadece başvuru klasörüne varolan sqlite dosyası (base.sqlite) eklendi ve benim çerçeveler Sqlite3 lib ekledi.

Oluştur 11/05/2009 saat 15:20
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
3

Uygulamanın paket içinde dosyanın yolunu almak için bunu kullanın:

[[NSBundle mainBundle] pathForResource:@"base" ofType:@"sqlite"];

aslında veritabanını açmak için kötü haber uygulama paket içinde bir dosyayı değiştirmeye çalıştığını, çünkü ilk Belgeler dizinine kopyalayın gerekebilir.

Cevap 11/05/2009 saat 16:04
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more