野蛮人 发表于 2013-10-13 10:57:01

本地数据库问题

以下是官方API但是运行不成功呢。创建完查询出错在模拟器里运行的
<!DOCTYPE html>
<html>
<head>       
<title>Contact Example</title>

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">

        // 等待加载PhoneGap
        document.addEventListener("deviceready", onDeviceReady, false);
       
        // 填充数据库
        function populateDB(tx) {
                tx.executeSql('DROP TABLE DEMO IF EXISTS');
                tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
                tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
                tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
        }
       
        // 查询数据库
        function queryDB(tx) {
                tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
        }
       
        // 查询成功后调用的回调函数
        function querySuccess(tx, results) {
                // 因为没有插入记录,所以返回值为空
                console.log("Insert ID = " + results.insertId);
                // 因为这是一条查询语句所以返回值为0
                console.log("Rows Affected = " + results.rowAffected);
                // 返回查询到的记录行数量
                console.log("Insert ID = " + results.rows.length);
        }
       
        // 事务执行出错后调用的回调函数
        function errorCB(err) {
                console.log("Error processing SQL: "+err.code);
        }
       
        // 事务执行成功后调用的回调函数
        function successCB() {
                var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
                db.transaction(queryDB, errorCB);
        }
       
        // PhoneGap加载完毕
        function onDeviceReady() {
                var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
                db.transaction(populateDB, errorCB, successCB);
        }

</script>
</head>
<body>
        <h1>Example</h1>
        <p>Database</p>
</body>
</html>

野蛮人 发表于 2013-10-13 11:06:30

有大神指导一下没有啊{:4_87:}

admin 发表于 2013-10-13 16:36:57

野蛮人 发表于 2013-10-13 11:06
有大神指导一下没有啊

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>PhoneGap-Storage</title>
<link rel="stylesheet" href="../jquery.mobile-1.1.1/jquery.mobile-1.1.1.css" />
<script src="../jquery.mobile-1.1.1/jquery.js"></script>
<script src="../jquery.mobile-1.1.1/jquery.mobile-1.1.1.js"></script>
<script type="text/javascript" charset="utf-8" src="../cordova-1.9.0.js"></script>
<script type="text/javascript">
        $(document).ready(function(){
                        document.addEventListener("deviceready", myDeviceReadyListener, false);       
        });
       
        function myDeviceReadyListener(){
                var database = window.openDatabase("BeifengPhoneGap", "1.1", "PhoneGapDB", 102400);
                createTable(database);
                queryTable(database);
        }
       
        createTable = function(db){
                db.transaction(function(tx){
                        tx.executeSql('CREATE TABLE IF NOT EXISTS tbl_user (id int PRIMARY KEY, user_name NVARCHAR(255),password NVARCHAR(255))');
                },function(err){
                        console.log("执行失败"+err);
                },function(){
                        console.log("执行成功!");
                });
        }
       
        insertTable = function(db){
                db.transaction(function(tx){
                        tx.executeSql('INSERT INTO tbl_user VALUES(?,?,?)',,function(tx,resultset){
                                if(resultset.rowsAffected) {
                                        console.log("插入数据对表有影响!");
                                }
                                console.log("rowAffected:" + resultset.rowsAffected);
                                console.log("insertId:" + resultset.insertId);
                        },function(err){
                                console.log("插入数据失败:"+err.code);
                        });
                },function(err){
                        console.log("执行失败"+err.code);
                },function(){
                        console.log("执行成功!");
                })
        }
       
        queryTable = function(db){
                db.transaction(function(tx){
                        tx.executeSql('SELECT * from tbl_user',[],function(tx,resultset){
                                if(resultset.rowsAffected) {
                                        console.log("插入数据对表有影响!");
                                }
                                console.log("rowsAffected:" + resultset.rowsAffected);
                                console.log("rows:" + resultset.rows.length);
                                for(var i = 0; i <resultset.rows.length;i++){
                                        console.log(resultset.rows.item(i).id);
                                }
                        },function(err){
                                console.log("插入数据失败:"+err.code);
                        });
                },function(err){
                        console.log("执行失败"+err.code);
                },function(){
                        console.log("执行成功!");
                })
        }
       
</script>
</head>
<body>
        <div data-role="page">
                <div data-role="header">
                        <h1>Storage</h1>
                </div>
                <div data-role="content">
                </div>
                <div data-role="footer">
                        <h4> </h4>
                </div>
        </div>
</body>
</html>一个完整的例子

野蛮人 发表于 2013-10-14 09:23:12

admin 发表于 2013-10-13 16:36
一个完整的例子

谢谢,原来官方给的例子创建数据库是没有加字段类型
页: [1]
查看完整版本: 本地数据库问题