タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

データベースに関するryochackのブックマーク (3)

  • マルチスレッド - 某ソフト作者の開発日記

    複数スレッドから同一データベースを扱う場合は,それぞれのスレッドが sqlite_open より取得された sqlite* を持つ必要がある. って http://www.sqlite.org/c_interface.html の section 5.0 に書いてありますが,うっかり同じ出自の sqlite* を使ってしまいました.すると見事なまでにエラー続出.幸い,上記サイトを昨日参照したばかりだったので注意事項を思い出すことができた(内容までは覚えていなかったけど…). で,select 系はいいとして,update や delete, insert が同時に起こるとクエリーはどちらかが止まってしまうことに気づいた(具体的なエラー名はわかりません). これを回避するために,update 等が必要になる処理は CCriticalSection で囲うことにした.もちろん,検索専用スレッド

    マルチスレッド - 某ソフト作者の開発日記
    ryochack
    ryochack 2012/05/06
    複数スレッドから同一データベースを扱う場合は,それぞれのスレッドが sqlite_open より取得された sqlite* を持つ必要がある.
  • SQLiteを使う場合の注意点 - 一歩ずつコツコツと

    さて、長いこと放置していたはてなダイアリーの方ですが、まとめ書きした方がいいものは、やっぱりこちらに書くということで。 AndroidSQLiteを使うケースは多々あると思いますが、明言されていない注意点があるので忘備録がてら。 SQLiteDatabase#closeは明示で呼ぶな、Cursor#closeは明示で呼べ これはSQLiteの作りの話ですが、SQLiteではマルチスレッドに対してコネクションオープンからクローズまでは保障する、という作りになっています。 要はコネクション単位でスレッドセーフですよ、ということ。 AndroidSQLiteを使って検索系の処理をするのに、いわゆるWebアプリ的な作りで考えると、更新系処理ではCUD処理のあとにSQLiteDatabase#closeとしがちですが、android.database.sqlite.SQLiteException

    SQLiteを使う場合の注意点 - 一歩ずつコツコツと
  • SQLiteの組込方法

    h.omae @pigeon6 ちなみに余談ですがamalgamationされたファイルをVisualStudio2003等の古いコンパイラでビルドすると、「行数が65535行を超えました。これ以上カウントできません」という珍しいワーニングを見る事が出来ます。 2009-11-30 23:38:22

    SQLiteの組込方法
  • 1