Hatena::Groupiphone-dev

haoyayoi Dev Style このページをアンテナに追加 RSSフィード

2009-05-05

FMDatabaseの最小限度の流れ

| 15:05 | FMDatabaseの最小限度の流れ - haoyayoi Dev Style を含むブックマーク はてなブックマーク - FMDatabaseの最小限度の流れ - haoyayoi Dev Style FMDatabaseの最小限度の流れ - haoyayoi Dev Style のブックマークコメント

何度もEXC_BAD_ACCESS続きだったんですが、ようやく確立したので。

読み込み

	FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
	if([db open]){
		NSLog(@"Error :: Cannot open DB");
		return;
	}
	[db beginTransaction];
        FMResultSet *res = [db executeQuery:@"SELECT * FROM ....", etc...];
        //any load from res
        [res close];
        [db close];

書込み

	FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
	if([db open]){
		NSLog(@"Error :: Cannot open DB");
		return;
	}
	[db beginTransaction];
        [db executeUpdate:@"INSERT INTO *  ....", etc...];
        [res commit];
        [res close];
        [db close];

流れ

まずは、databaseWithPathでDBパスを指定してインスタンスの生成。その後、openにて確認を行い、beganTransactionにてトランザクションの開始。executeUpdateを用いた場合はcommitを忘れずに行う。これらが一個でも抜けたらEXC_BAD_ACCESSとなる具合です。その後、FMResultおよびFMDatabaseのcloseを実行。

ヘッダを見ても、正直何がどういったメソッドなのか分かりにくいため実装を読まざる得ない感じです。もうちょっと冗長気味なメソッド名にしてくれてもよさそうなものですが。