WebSQLは非推奨となり、多くのWebブラウザでは機能が廃止されています。本記事で紹介しているコードも最新のWebブラウザでは動作しない場合があるためご注意下さい。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function Proc() {
var db = OpenMyDatabase();
SelectAllRecord(db);
}
function OpenMyDatabase() {
var dbsize = 1000;
var dbname = "myDB";
var dbversion = "1.0";
var dbdescription = "Test Database"
var db = window.openDatabase(dbname, dbversion, dbdescription, dbsize);
if (db == null) {
alert("データベースが開けませんでした。");
}
return db;
}
function SelectAllRecord(dbobj) {
dbobj.transaction(
function (transact) {
transact.executeSql("select * from product", [],
function (rt, rs) {
var elem = document.getElementById("output");
for (var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);
elem.innerHTML += row.id + ", " + row.name + ", " + row.price +"<br/>";
}
},
function () { alert("ERROR"); });
}
);
}
</script>
</head>
<body>
<p>レコードの検索 テストページ</p>
<a href="javascript:Proc();">Select All Record</a><br />
<div id="output">
</div>
</body>
</html>
dbobj.transaction(
function (transact) {
/* 中略 */
}
);
executeSql
メソッドを呼び出します。第一引数に実行するSQL文の文字列を与えます。rs.rows.length
プロパティに設定されます。
forループでレコード数の数だけループします。レコードの値は rs.rows.item(i)
で取得します。i
に取得するレコード番号を与えます。最初のレコードを取得する際には iの値に0 を与えます。row.id
でアクセスできます。 transact.executeSql("select * from product", [],
function (rt, rs) {
var elem = document.getElementById("output");
for (var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);
elem.innerHTML += row.id + ", " + row.name + ", " + row.price +"<br/>";
}
},
function () { alert("ERROR"); });
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function Proc() {
var db = OpenMyDatabase();
SelectRecord(db);
}
function OpenMyDatabase() {
var dbsize = 1000;
var dbname = "myDB";
var dbversion = "1.0";
var dbdescription = "Test Database"
var db = window.openDatabase(dbname, dbversion, dbdescription, dbsize);
if (db == null) {
alert("データベースが開けませんでした。");
}
return db;
}
function SelectRecord(dbobj) {
dbobj.transaction(
function (transact) {
transact.executeSql("select * from product where CAST(price as DECIMAL) > 100", [],
function (rt, rs) {
var elem = document.getElementById("output");
for (var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);
elem.innerHTML += row.id + ", " + row.name + ", " + row.price +"<br/>";
}
},
function () { alert("ERROR"); });
}
);
}
</script>
</head>
<body>
<p>レコードの検索 テストページ</p>
<a href="javascript:Proc();">Select All Record</a><br />
<div id="output">
</div>
</body>
</html>
select * from product where CAST(price as DECIMAL) > 100
CAST
関数を用いて数値に変換したうえで、条件式を記述しています。select * from product where price > 100