.19 2009

SQLite を使ってみる(6)

Tasaki です。

いよいよ SQLite 編も最終回となりました。
最後はデータの削除とアプリケーション終了時の後処理についてです。

ただ、4回目のエントリで既に個別のデータの消去については紹介済みですので、今回は全てのデータを消去する場合を考えます。
これはすごく単純でして、全てのデータの読み込みとデータの消去の方法が分かっていれば、簡単に思いつくでしょう。
実装例を以下に示します。このメソッドは、データベースへのポインタ database とデータベース内のデータから作成した Person オブジェクトの配列 dataArray を管理するクラスで定義することを想定しています。
// 全ての位置情報をテーブルから削除
- ( void ) deleteAllData {
static char *sqlString = "DELETE FROM person";
sqlite3_stmt *statement = NULL;
if( database != NULL ) {
  if( sqlite3_prepare_v2( database, sqlString, -1, &statement, NULL ) == SQLITE_OK ) {
   while( sqlite3_step( statement ) == SQLITE_ROW );
  }
  sqlite3_finalize( statement );
 }
}

上の例ではエラー処理を怠けてしまっていますが、削除できたデータと同じものだけをメモリに展開中の配列から抹消することが、望ましいのではないでしょうか。

次に後処理に関してですが、最低でも以下の処理は必要になります。
これも前述のクラスで定義しておくべきメソッドです。
- ( void ) closeDatabase {
if( database == NULL ) {
  return;
 }
if( sqlite3_close( database ) != SQLITE_OK ) {
  NSLog( @"Failed to close database with '%s'.", sqlite3_errmsg( database ));
 }
}

これで、開始から終了までに最低限必要となる機能をご紹介できました。
慣れるまではいろいろ面倒に感じますが、ある程度仕組みが分かってしまえば、応用はそう難しくないのではないでしょうか。

まあ、3.0 で追加された Core Data を使えば、もっと楽なのは間違いないでしょうけど。
Core Data についてのエントリもありますので、こちらからどうぞ。


関連記事
スポンサーサイト



Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/81-124d720f

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク