# Cordova Sqlite Storage プラグイン

この Cordova プラグインは、HTML5/Web SQL API を使用して Android、iOS、Windows 上で sqlite データベースを開き、使用します。

* Repo: <https://github.com/litehelpers/Cordova-sqlite-storage>
* Plugin ID/Package Name: `cordova-sqlite-storage`
* Tested Version: 6.1.0

{% hint style="info" %}
サードパーティー製 Cordova プラグインを確認する場合は、カスタムビルドデバッガー ( [Android 版](/products_guide/debugger/installation/debugger_android.md#kasutamubirudo-monaca-debaggnobirudotoinsutru) または [iOS 版](/products_guide/debugger/installation/debugger_ios.md#kasutamubirudo-monaca-debaggnobirudo) ) を作成する必要があります。
{% endhint %}

## デモ

[<img src="https://docs.monaca.io/images/common/import_img.png" alt="" data-size="line">プロジェクトをインポート](https://monaca.mobi/ja/directimport?pid=64cb0450e78885302d01d556)

![](/files/-MgxutqF8az_-nuDcXbA)

## Monaca クラウド IDE でプラグインを有効にする

1. IDE メニューか&#x3089;**`設定 → Cordova プラグインの管理`**&#x3078;移動します。
2. &#x20;`Cordova プラグインのインポート`ボタンをクリックします。 次に、\[ZIP ファイル] または \[パッケージ名 / URL] を使用してプラグインをインポートします。

## 使い方

プラグインをプロジェクトへインポート後、データベースの初期化を開始できます。\[deviceready] イベント後にプラグイン API を使用します。

```javascript
var database = null;

document.addEventListener("deviceready", function(){
    // Initialize the database after the Cordova is ready.
    initDatabase();
});

function initDatabase() {
    database = window.sqlitePlugin.openDatabase({name: 'sample.db', location: 'default'});

    database.transaction(function(transaction) {
        transaction.executeSql('CREATE TABLE SampleTable (name, score)');
    });
}
```

## API リファレンス

ここでは、[デモ](https://monaca.mobi/directimport?pid=5ac33652e78885cd208b4567) で使用されている主な API について説明します。 完全なAPIリファレンスについては、[こちら](https://github.com/litehelpers/Cordova-sqlite-storage) を参照してください。

### セルフテスト 機能

#### echoTest()

このプラグインの Javascript とネイティブ部分の両方がアプリにインストールされていることを確認してください。

```javascript
window.sqlitePlugin.echoTest(successCallback, errorCallback);
```

**戻り値**

* `Promise`

#### selfTest()

プラグインがデータベースを開き、CRUD (作成、読み取り、更新、削除) 操作を実行し、正しくクリーンアップできることを確認します。

```javascript
window.sqlitePlugin.selfTest(successCallback, errorCallback);
```

**戻り値**

* `Promise`

### データベースの操作

データベースオブジェクトを開きます。

```javascript
window.sqlitePlugin.openDatabase({name: String, [location: String], 
[iosDatabaseLocation: String]}, [successCallback], [errorCallback]);
```

**パラメーター**

| パラメーター名               | 型      | 説明                                                                                                                                                                                                                                                                                                                              |
| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                | String | データベースの名前                                                                                                                                                                                                                                                                                                                       |
| `location`            | String | \[オプション] データベースの場所                                                                                                                                                                                                                                                                                                              |
| `iosDatabaseLocation` | String | <p>\[オプション] iOSデータベースの場所。</p><p></p><ul><li><code>default</code>: Library/LocalDatabase サブディレクトリ - iTunes には表示されず、iCloud によってバックアップされません。</li><li><code>Library</code>: Library サブディレクトリ - iCloud によってバックアップされ、iTunes には表示されません。</li><li><code>Documents</code>: Documents サブディレクトリ - iTunesに表示され、iCloudによってバックアップされる</li></ul> |

**戻り値**

* `Promise`&#x20;

**例**

既定または指定された場所でデータベースアクセスハンドルオブジェクトを開く例：

```javascript
// use the default location
var database = window.sqlitePlugin.openDatabase({name: 'my.db', location: 'default'});

// use a specified location for iOS only
var database = window.sqlitePlugin.openDatabase({name: 'my.db', iosDatabaseLocation: 'Library'});
```

success および error コールバックパラメーターはオプションですが、問題が発生した場合に非常に役立ちます。 例：

```javascript
window.sqlitePlugin.openDatabase({name: 'my.db', location: 'default'}, function(db) {
  db.transaction(function(tx) {
    // ...
  }, function(err) {
    console.log('Open database ERROR: ' + JSON.stringify(err));
  });
});
```

### SQL トランザクション

開いているデータベースで SQL を実行します。

```javascript
database.executeSql(SQL_STATEMENT: String, [] , [successCallback], [errorCallback]);
```

**戻り値**

* `Promise`&#x20;

**例**

```javascript
database.transaction(function(transaction) {
    transaction.executeSql('SELECT count(*) AS recordCount FROM SampleTable', [], function(ignored, resultSet) {
        $('#result').text('RECORD COUNT: ' + resultSet.rows.item(0).recordCount);
    });
}, function(error) {
    alert('SELECT count error: ' + error.message);
});
```

```javascript
database.transaction(function(transaction) {
    transaction.executeSql('DELETE FROM SampleTable');
}, function(error) {
    alert('DELETE error: ' + error.message);
}, function() {
    alert('DELETE OK');
});
```

### データベースの削除

データベースオブジェクトを削除します。

```javascript
window.sqlitePlugin.deleteDatabase({name: String, [location: String], 
[iosDatabaseLocation: String]}, [successCallback], [errorCallback]);
```

**パラメーター**

| パラメーター名               | 型      | 説明                                                                                                                                                                                                                                                                                                                              |
| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                | String | データベースの名前                                                                                                                                                                                                                                                                                                                       |
| `location`            | String | \[オプション] データベースの場所                                                                                                                                                                                                                                                                                                              |
| `iosDatabaseLocation` | String | <p>\[オプション] iOSデータベースの場所。</p><p></p><ul><li><code>default</code>: Library/LocalDatabase サブディレクトリ - iTunes には表示されず、iCloud によってバックアップされません。</li><li><code>Library</code>: Library サブディレクトリ - iCloud によってバックアップされ、iTunes には表示されません。</li><li><code>Documents</code>: Documents サブディレクトリ - iTunesに表示され、iCloudによってバックアップされる</li></ul> |

**戻り値**

* `Promise`&#x20;

**例**

```javascript
// use the default location
window.sqlitePlugin.deleteDatabase({name: 'my.db', location: 'default'}, successcb, errorcb);

// use a specified location for iOS only
window.sqlitePlugin.deleteDatabase({name: 'my.db', iosDatabaseLocation: 'Library'});
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ja.docs.monaca.io/tutorials/sqlite.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
