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