--- title: mozIStorageService slug: mozIStorageService --- <p>このインタフェースを使うことでデータベースへの<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code>を開くことができます、また開かれていないデータベースファイルのバックアップを作成することもできます。</p> <p></p><div style="border: solid #ddd 2px; margin-bottom: 12px;"> <div style="background: #eee; padding: 2px;"><code><a href="https://dxr.mozilla.org/mozilla-central/source/storage/public/mozIStorageService.idl" rel="custom">storage/public/mozIStorageService.idl</a></code><span style="text-align: right; float: right;"><a href="/ja/docs/Interfaces/About_Scriptable_Interfaces" style="color: #00cc00; font-weight: 700;">Scriptable</a></span></div> <span style="padding: 4px 2px;"> <i>Please add a summary to this article.</i> </span> <div style="background: #eee; padding: 2px;"> <span> </span> <span style="text-align: right; float: right;">最終更新: Gecko 1.9 (Firefox 3)</span></div> </div><p></p> <p>継承元: <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISupports" title="">nsISupports</a></code></p> <h2 id="メソッド概要">メソッド概要</h2> <table class="standard-table"> <tbody> <tr> <td><code><code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code> <a href="#backupDatabaseFile.28.29">backupDatabaseFile</a>(in <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code> aDBFile, in AString aBackupFileName, [optional] in <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code> aBackupParentDirectory);</code></td> </tr> <tr> <td><code><code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code> <a href="#openDatabase.28.29">openDatabase</a>(in <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code> aDatabaseFile);</code></td> </tr> <tr> <td><code><code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code> <a href="#openSpecialDatabase.28.29">openSpecialDatabase</a>(in string aStorageKey);</code></td> </tr> <tr> <td><code><code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code> <a href="#openUnsharedDatabase.28.29">openUnsharedDatabase</a>(in <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code> aDatabaseFile);</code></td> </tr> </tbody> </table> <h3 id="メソッド">メソッド</h3> <h3 id="backupDatabaseFile.28.29" name="backupDatabaseFile.28.29">backupDatabaseFile()</h3> <p>指定されたファイルのバックアップを作成します。データベースは開かれていない必要があります、またはこのメソッドを呼び出す際にデータベースに対する操作が行われないことが確かである必要があります。指定されたファイル名はあくまでもサジェスチョンになります。すでにファイル名が使われている場合、ユニークなファイル名になるように処理されます。実際のバックアップファイルは戻り値になり、実際のファイル名もそこから取得することができます。</p> <pre>nsIFile backupDatabaseFile( in nsIFile aDBFile, in AString aBackupFileName, [optional] in nsIFile aBackupParentDirectory ); </pre> <h6 id="引数">引数</h6> <dl> <dt> aDBFile</dt> <dd> バックアップを取るデータベースファイル</dd> <dt> aBackupFileName</dt> <dd> 新しく作成するバックアップファイルの名前</dd> <dt> aBackupParentDirectory</dt> <dd> バックアップファイルを格納するディレクトリの名前。この引数が指定されない場合はオリジナルのデータベースファイルと同じ場所にバックアップファイルが作成されます。</dd> </dl> <h6 id="戻り値">戻り値</h6> <p>新しいバックアップデータベースファイルを意味する<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code>オブジェクト</p> <h3 id="openSpecialDatabase.28.29" name="openSpecialDatabase.28.29">openSpecialDatabase()</h3> <p>要求されたストレージのタイプを特定する命名された特別なデータベースストレージへの接続を開きます。</p> <p></p><div class="blockIndicator note"><strong>註:</strong> プロファイルデータベースへはメインスレッドからのみアクセスしてください。(他の呼び出しが利用している可能性があります。)</div><p></p> <h6 id="引数_2">引数</h6> <dl> <dt> aStorageKey</dt> <dd> 要求されたストレージタイプを特定するキー文字列。"profile"および"memory"が有効です。</dd> </dl> <h6 id="戻り値_2">戻り値</h6> <p>指定されたデータベースへの接続を提供する新しい<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code>オブジェクト</p> <h6 id="例外">例外</h6> <dl> <dt> NS_ERROR_INVALID_ARG</dt> <dd> <code>aStorageKey</code>が不正な場合</dd> </dl> <h3 id="openDatabase.28.29" name="openDatabase.28.29">openDatabase()</h3> <p>指定されたファイルへのデータベース接続を開きます。このメソッドが<code>NS_ERROR_FILE_CORRUPTED</code>例外をスローする場合、<code><a href="https://developer.mozilla.org/ja/docs/XPCOM_Interface_Reference/mozIStorageService#backupDatabaseFile()">mozIStorageService.backupDatabaseFile()</a></code>メソッドをデータベースをバックアップするために呼び出すことが推奨されます。こうすることでユーザデータの喪失を防ぐことができます。(現在失われたデータを復旧する手段はありません。)</p> <p></p><div class="blockIndicator warning"> <p><strong>警告:</strong> 単一のファイルに対して複数の接続を確立する場合、<strong>必ず</strong>毎回大文字小文字を含め<strong>正確に同じ名前を</strong>使用してください。SQLiteのプログラムは既に接続が開かれているかどうかを調べるために、単純な文字列比較によって判断しています。"Foo.sqlite" と "foo.sqlite" により接続を開いた場合はあなたのデータベースは<strong>破損してしまう</strong>でしょう。</p> </div><p></p> <p>もし、仮想テーブルをデータベース中に含むのであれば(例えば、全文インデックスなど)、<code><a href="https://developer.mozilla.org/ja/docs/XPCOM_Interface_Reference/mozIStorageService#openUnsharedDatabase()">mozIStorageService.openUnsharedDatabase()</a></code>を開く際に使うべきです。なぜならばこのようなテーブルは共有キャッシュが使えないためです。このメソッドを仮想テーブルを含むデータベースへの接続を開くために用いた場合、データベースの破損と<code>NS_ERROR_FILE_CORRUPTED</code>例外のスローが発生するでしょう。</p> <pre>mozIStorageConnection openDatabase( in nsIFile aDatabaseFile ); </pre> <h6 id="引数_3">引数</h6> <dl> <dt> aDatabaseFile</dt> <dd> データベースとして開くための<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code>オブジェクト</dd> </dl> <h6 id="戻り値_3">戻り値</h6> <p>開かれたデータベース接続である<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code>オブジェクト</p> <h6 id="例外_2">例外</h6> <dl> <dt> NS_ERROR_FAILURE</dt> <dd> データベースを開こうとした際にエラーが起こった場合発生</dd> <dt> NS_ERROR_FILE_CORRUPTED</dt> <dd> データベースファイルが破損した場合、またはデータベースが(このメソッドでは対応していない)仮想テーブルを含む場合に発生</dd> <dt> NS_ERROR_OUT_OF_MEMORY</dt> <dd> 新しいストレージオブジェクトの割り当てが失敗した場合に発生</dd> </dl> <h3 id="openUnsharedDatabase.28.29" name="openUnsharedDatabase.28.29">openUnsharedDatabase()</h3> <p>共有キャッシュを使わずに指定されたファイルへのデータベース接続を開きます。このメソッドがNS_ERROR_FILE_CORRUPTED例外をスローする場合、<code><a href="https://developer.mozilla.org/ja/docs/XPCOM_Interface_Reference/mozIStorageService#backupDatabaseFile()">mozIStorageService.backupDatabaseFile()</a></code>メソッドをデータベースバックアップのために呼び出すことが推奨されます。こうすることでユーザデータの喪失を防ぐことができます。(現在失われたデータを復旧する手段はありません。)</p> <p></p><div class="blockIndicator warning"> <p><strong>警告:</strong> 単一のファイルに対して複数の接続を確立する場合、<strong>必ず</strong>毎回大文字小文字を含め<strong>正確に同じ名前を</strong>使用してください。SQLiteのプログラムは既に接続が開かれているかどうかを調べるために、単純な文字列比較によって判断しています。"Foo.sqlite" と "foo.sqlite" により接続を開いた場合はあなたのデータベースは<strong>破損してしまう</strong>でしょう。</p> </div><p></p> <pre>mozIStorageConnection openUnsharedDatabase( in nsIFile aDatabaseFile ); </pre> <h6 id="引数_4">引数</h6> <dl> <dt> aDatabaseFile</dt> <dd> データベースとして開くための<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code>オブジェクト</dd> </dl> <h6 id="戻り値_4">戻り値</h6> <p>開かれたデータベース接続である<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIStorageConnection" title="">mozIStorageConnection</a></code>オブジェクト</p> <h6 id="例外_3">例外</h6> <dl> <dt> NS_ERROR_FAILURE</dt> <dd> データベースを開こうとした際にエラーが起こった場合発生</dd> <dt> NS_ERROR_FILE_CORRUPTED</dt> <dd> データベースファイルが破損した場合、またはデータベースが(このメソッドでは対応していない)仮想テーブルを含む場合に発生</dd> <dt> NS_ERROR_OUT_OF_MEMORY</dt> <dd> 新しいストレージオブジェクトの割り当てが失敗した場合に発生</dd> </dl> <h3 id="参照">参照</h3> <ul> <li><a href="/en/Storage" title="en/Storage">Storage</a></li> <li><a href="/en/mozIStorageConnection" title="en/mozIStorageConnection">mozIStorageConnection</a></li> </ul> <dl> <dd> </dd> </dl>