Набор результатов FMDB содержит нулевой iphone - PullRequest
0 голосов
/ 06 марта 2011

Я использую FMDB для своего приложения для хранения данных в sqlite. Вот мой код

из AppDelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application 

{

FMDatabase * db = [FMDatabase databaseWithPath: @ "/ tmp / sql.sqlite"];

if (![db open]) {
    NSLog(@"Could not open db.");

}
NSLog(@"DB opened successfully");

// полный код здесь не показан

}

У меня следующий код в ViewController

-(IBAction)insertButtonClicked:(id)sender

{ NSLog (@ "in insertButtonCLicked");

[db beginTransaction];

[db executeUpdate:@"insert into sample (url) values (?)",@"google'"];

[db commit];

} * * тысяча двадцать-один

- (IBAction) displayButtonClicked: (идентификатор) отправителя

{

NSLog(@"in DisplayCLicked");

FMResultSet *rs = [db executeQuery:@"select url from sample"];

NSLog(@"Rs contains => %@",rs);

while( [rs next])
{

    NSLog(@"%@",[rs stringForColumn:@"url"]);
}
[rs close];

}

Когда я запускаю этот код, я получаю rs равным нулю, как показано ниже (это o / p с консоли)

2011-03-07 07:30:06.919 InsertDataSample[3092:20b] DB opened successfully

2011-03-07 07: 30: 13.341 InsertDataSample [3092: 20b] в insertButtonCLicked

2011-03-07 07: 30: 16.860 InsertDataSample [3092: 20b] в DisplayCLicked

2011-03-07 07: 30: 16.860 InsertDataSample [3092: 20b] Rs содержит => (ноль)

Пожалуйста, помогите мне, друзья. Я работаю над FMDB много дней, но я не могу использовать FMDB. Заранее спасибо

1 Ответ

3 голосов
/ 06 марта 2011

Вставьте это сразу после того, как ваш запрос и FMDB, вероятно, точно скажут вам, в чем проблема.

if ([db hadError]) {
    NSLog(@"DB Error %d: %@", [db lastErrorCode], [db lastErrorMessage]);
}

Обновление:

Выполнение этого:

FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/sql.sqlite"];
[db executeUpdate:@"create table sample (url TEXT);"];
[db executeUpdate:@"insert into sample (url) values(?);", @"google'"];
FMResultSet *rs = [db executeQuery:@"select url from sample;"];
while ([rs next]) {
    NSLog(@"%@", [rs stringForColumn:@"url"]);
}
[rs close];
[db close];

произвел этот вывод:

2011-03-06 12:38:59.831 test[93163:207] google'
...