Storage メモ

  • 使うAPIはそれほど多くなく、結構わかりやすい。mozStorage Extensionが見やすかった。
  • 検索プラグインのソース(nsSearchService.js)も参考になりそう。
  • カラムの型などメタ情報が取れそうなAPIが見つからなかった。mozIStorageValueArray#getTypeOfIndex(index)でカラムの型が取得可能。型に応じた定数もmozIStorageValueArrayで切られている。
  • mozIStorageStatementWrapperが便利みたい。
    • バインド変数で、数字じゃなくて ":hoge" みたいなのが使える。mozIStorageStatementWrapper#params でバインドする。(型を気にする必要なしか?)
    • mozIStorageStatementWrapper#row[カラム名]で、結果を取れる。けど、存在しないカラム名を指定すると、例外も返らず即終了!!みたいな感じの現象になった。

追記@2007/06/13

  • mozIStorageConnection#lastError,lastErrorStringは、最後に発生したエラーじゃなくて、最後に実行したSQLの結果が入る模様。
    lastErrorには、0(正常)と1(エラー)しか入らない?正常の場合、lastErrorStringには何も設定されない。'not an error'という文字が入っていた。
    しかもmozIStorageConnection#rollbackTransaction()でも設定されてしまうので、エラー時にロールバックしてその後にlastErrorStringを参照してもエラーの情報は消えている。