【发布时间】:2014-05-05 14:56:43
【问题描述】:
我正在 Eclipse IDE 中使用 Phonegap 开发一个使用 sqlite 作为我的数据库的 Android 应用程序。 在我的 index.html 中,我正在使用 db.openDatabase 创建数据库。在 data>data>com.app>app_storage> 下的文件资源管理器中创建一个数据库 00001.db 在同一页面中,我正在创建我的表(总共 7 个)并填充其中一个。 当我导航到不同的页面并尝试查询表时,我在 logCat 中收到错误提示“没有这样的表” 为什么会这样?我该如何解决 ?
我看到 SQLiteLog 没有这样的表 cdpportal_employee_details
<!DOCTYPE html>
<html>
<head>
<title>Embedded Sql Example</title>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" charset="utf-8">
var db;
var shortName = 'WebSqlDB';
var version = '1.0';
var displayName = 'WebSqlDB';
var maxSize = 65535;
role="false";
function errorHandler(transaction, error) {
alert('Error: ' + error.message + ' code: ' + error.code);
}
function successCallBack() {
alert("DEBUGGING: success");
}
function nullHandler(){alert ("TABLE CREATED");}
function onBodyLoad(){
alert("DEBUGGING: we are in the onBodyLoad() function");
if (!window.openDatabase) {
alert('Databases are not supported in this browser.');
return;
}
db = openDatabase(shortName, version, displayName,maxSize);
db.transaction(function(tx){
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_employee_details(employee_id TEXT PRIMARY KEY,password TEXT,role TEXT,employee_name TEXT,contact_number NUMBER,email_id TEXT)');
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_course_details(course_id TEXT PRIMARY KEY NOT NULL,course_name TEXT NOT NULL,start_date TEXT NOT NULL,end_date TEXT NOT NULL,sess TEXT,instructor_name TEXT,techassociate_name TEXT,venue TEXT)');
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_attendance_code_gen(course_id TEXT,day TEXT,attendance_code TEXT,FOREIGN KEY (course_id) REFERENCES cdpportal_course_details(course_id),PRIMARY KEY (course_id,day,attendance_code) )');
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_registered_emp(employee_id TEXT ,course_id TEXT ,FOREIGN KEY (employee_id) REFERENCES cdpportal_employee_details(employee_id),FOREIGN KEY (course_id) REFERENCES cdpportal_course_details(course_id),PRIMARY KEY(employee_id, course_id))');
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_removed_courses(admin_id TEXT,course_id TEXT,course_name TEXT,FOREIGN KEY (admin_id) REFERENCES cdpportal_employee_details(employee_id),FOREIGN KEY (course_id) REFERENCES cdpportal_course_details(course_id),PRIMARY KEY (admin_id, course_id))');
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_attendance_record(employee_id TEXT,course_id TEXT,day TEXT,attended TEXT,FOREIGN KEY (employee_id) REFERENCES cdpportal_employee_details(employee_id),FOREIGN KEY (course_id) REFERENCES cdpportal_course_details(course_id),PRIMARY KEY (employee_id, course_id))');
tx.executeSql( 'CREATE TABLE IF NOT EXISTS cdpportal_assesment_result(employee_id TEXT,course_id TEXT ,handson_marks NUMBER,objective_marks NUMBER,FOREIGN KEY (employee_id) REFERENCES cdpportal_employee_details(employee_id),FOREIGN KEY (course_id) REFERENCES cdpportal_course_details(course_id),PRIMARY KEY(course_id,employee_id))');
tx.executeSql('insert into cdpportal_emploee_details values ("rifath","Qwerty","E","Sri Harsha L",9633852741,"sriharsha@infosys.com")');
},nullHandler,successCallBack);
}
function fun()
{
var uname=document.getElementById("usrnm").value;
var pwd=document.getElementById("pswd").value;
db = openDatabase(shortName, version, displayName,maxSize);
db.transaction(function(tx){
tx.executeSql( 'SELECT role from cdpportal_employee_details where employee_id=? AND password=?',[uname, pwd], function(tx, results)
{
role=results.value;
}, null);
});
alert(role);
}
</script>
</head>
<body onload="onBodyLoad()">
<h1>WebSQL</h1>
<form>
<div>
<h3>Login</h3>
<label for="usrnm" class="ui-hidden-accessible">Username:</label>
<input type="text" name="user" id="usrnm" placeholder="Username">
<label for="pswd" class="ui-hidden-accessible">Password:</label>
<input type="password" name="passw" id="pswd" placeholder="Password">
<input type="submit" data-inline="true" value="Log in" onclick= fun() style="color : teal; background-color: #FFFFC0">
</div>
</form>
</body>
(1) 没有这样的表:cdpportal_emploee_details
【问题讨论】:
-
我在 Google 上搜索了使用带有 phonegap 的 sqlite 的示例代码,并遇到了许多说明他们正在使用 sqlite 的示例。如何使用 sqlite 插件?一步一步的方法将不胜感激
-
对不起,我刚刚注意到一个拼写错误,但现在它抛出 (23) not authorized
-
我正在使用 Eclipse 构建:v21.0.1-543035。请帮助我几乎放弃了希望
-
查看我编辑的答案,我相信一个简单的错字是您问题的原因