Web SQL データベースを開く - JavaScript

Web SQL データベースを開くコードを紹介します。

概要

Web SQLのデータベースを利用するには最初にデータベースを開く必要があります。
Web SQLのデータベースを開くには window オブジェクトの openDatabase() メソッドを利用します。

書式

window.openDatabase([データベース名], [データベースのバージョン], [データベースの説明], [データベースの推定サイズ])
window.openDatabase([データベース名], [データベースのバージョン], [データベースの説明], [データベースの推定サイズ], [コールバック関数])
[データベース名]はデータベースを識別するための名称です。初回のデータベース作成の場合は任意の名前でよいです。 [データベースのバージョン]は通常 "1.0" を指定します。[データベースの説明]にはデータベースの説明文を与えます。 [データベースの推定サイズ]にはデータベースのサイズを指定します。レコードを追加後のおおよそのサイズを与えます。 また、コールバック関数を第5引数に与えた場合は、データベース作成時にコールバック関数が呼び出されます。

呼び出しに成功するとデータベースオブジェクトが戻り値として返ります。

記述例

function openDB(){
  window.openDatabase("MyDB", "1.0", "Test Database", 2048);
}

プログラム:例1

コード

下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
  <script type="text/javascript">
    var db;

    function OpenMyDatabase() {
      var dbsize = 1000;
      var dbname = "myDB";
      var dbversion = "1.0";
      var dbdescription = "Test Database"
      db = window.openDatabase(dbname, dbversion, dbdescription, dbsize);
      if (db == null) {
        alert("データベースが開けませんでした。");
      }
    }
  </script>
</head>
<body>
  <p>openDatabase テストページ</p>
  <a href="javascript:OpenMyDatabase();">OpenDatabase</a><br/>
</body>
</html>

解説

ページの[OpenDatabase]リンクをクリックすると、OpenMyDatabase()関数を呼び出します。

OpenMyDatabase()関数では、window.openDatabase() メソッドを呼び出し、データベースを開きます。データベースが無い場合は新規にデータベースを作成します。
    function OpenMyDatabase() {
      var dbsize = 1000;
      var dbname = "myDB";
      var dbversion = "1.0";
      var dbdescription = "Test Database"
      db = window.openDatabase(dbname, dbversion, dbdescription, dbsize);
      if (db == null) {
        alert("データベースが開けませんでした。");
      }
    }

実行結果

上記のHTMLファイルをWebブラウザで開きます。下図のページが表示されます。


[OpenDatabase] リンクをクリックします。リンクをクリックしても変化はありません。


開発者ツールの[Console]を確認します。エラーが発生していませんので、正しく処理ができています。

プログラム:例2 コールバック関数がある場合

コード

下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
  <script type="text/javascript">
    var db;

    function OpenMyDatabase() {
      var dbsize = 1000;
      var dbname = "myDBx";
      var dbversion = "1.0";
      var dbdescription = "Test Database"
      db = window.openDatabase(dbname, dbversion, dbdescription, dbsize, compFunc);
      if (db == null) {
        alert("データベースが開けませんでした。");
      }
    }

    function compFunc() {
      alert("データベースを作成しました。");
    }
  </script>
</head>
<body>
  <p>openDatabase テストページ</p>
  <a href="javascript:OpenMyDatabase();">OpenDatabase</a><br/>
</body>
</html>

解説

ページの[OpenDatabase]リンクをクリックすると、OpenMyDatabase()関数を呼び出します。

OpenMyDatabase()関数では、window.openDatabase() メソッドを呼び出し、データベースを開きます。データベースが無い場合は新規にデータベースを作成します。 また、第5引数でコールバック関数を与えています。

コールバック関数では、alert関数を呼び出し、データベースが作成された旨のメッセージを表示します。
    function compFunc() {
      alert("データベースを作成しました。");
    }

実行結果

上記のHTMLファイルをWebブラウザで開きます。下図のページが表示されます。


[OpenDatabase] リンクをクリックします。リンクをクリックすると、アラートダイアログが表示され [データベースを作成しました。] のメッセージが表示されます。


開発者ツールの[Console]を確認します。エラーが発生していませんので、正しく処理ができています。


なお、再度 [OpenDatabse]のリンクをクリックしても、アラートダイアログは表示されません。 初回のopenDatabase()メソッド呼び出し時にデータベースを新規に作成した場合にのみ コールバック関数が呼び出されます。~

補足 : データベースを閉じる場合

データベースを閉じるメソッドはないため、データベースを使用しない場合はデータベースオブジェクトにnullを代入することで、データベースオブジェクトを解放できます。
記述例
  function CloseDatabase() {
    db=null;
  }

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-05-15
作成日: 2021-05-15
iPentec all rights reserverd.