Tôi có vấn đề với một dự án sqlite mà tôi đang làm, tôi đang sử dụng FMDB, tôi làm theo một ví dụ đơn giản, nhưng không hoạt động. Và tôi không thể tìm thấy lỗi. Tôi đã làm lược đồ cơ sở dữ liệu của tôi từ thiết bị đầu cuối, tôi đặt một số dữ liệu trên nó. Tôi rất mới để ios dev, vì vậy tôi không biết chính xác nếu tôi đã làm các bước ok. Đây là những gì tôi đã làm:FMDB ios không có bảng như vậy
1 - Tôi đã tạo lược đồ Cơ sở dữ liệu của mình và thêm một số trường. 2 - Tôi đã sao chép cơ sở dữ liệu.db vào thư mục dự án của tôi trong xcode. 3 - Tôi thêm các tập tin FMDB. 4 - Tôi thêm sqlite3.dylib 5 - Tôi đặt mã này:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.dbname = @"database.db";
NSArray * docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * docDIr = [docPath objectAtIndex:0];
self.dbpath = [docDIr stringByAppendingPathComponent:dbname];
[self checkDB];
[self getQ];
return YES;
}
-(void) getQ
{
FMDatabase * db = [FMDatabase databaseWithPath:dbpath];
[db open];
FMResultSet * result = [db executeQuery:@"SELECT * FROM table1"];
NSLog(@"last Error: %@",[db lastErrorMessage]);
NSLog(@"result: %@", result);
}
-(void) checkDB
{
BOOL success;
NSFileManager * fm = [NSFileManager defaultManager];
success = [fm fileExistsAtPath:dbpath];
NSError * error = [[NSError alloc] init];
if (success) return;
NSLog(@"result:");
NSString * dbPathFromApp = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:self.dbname];
[fm copyItemAtPath:dbPathFromApp toPath:dbpath error:&error];
}
Dường như cơ sở dữ liệu trống, vậy điều gì đã xảy ra? tại sao tôi không thể tìm thấy table1? Nếu tôi mở tập tin với bất kỳ gui sqlite nào, bảng sẽ xuất hiện tốt. Cảm ơn bất kỳ sự giúp đỡ Bảng điều khiển hiển thị cho tôi các dòng tiếp theo: 2013-03-02 14: 03: 31.839 myApp [21433: c07] Lỗi cuối cùng: không có bảng như vậy: table1 2013-03-02 14: 03: 31.841 myApp [21.433: C07] kết quả: (null)
Cảm ơn bạn rất nhiều! đó là nó, bước 1 và 2 hoạt động hoàn hảo! Tôi quên một bước, lỗi newbie: D – Fede
Điểm 2 của bạn là những gì tôi quên. Tôi đã không sao chép cơ sở dữ liệu từ gói vào thư mục tài liệu. – Suragch
Cảm ơn bạn rất nhiều! ~ BướC# 1 là những gì tôi cần làm :) –