如何传递参数到PhoneGap数据库事务函数
how to pass arguments to PhoneGap database transaction function
我有一个工作的PhoneGap数据库事务,我能够运行sql查询并处理结果。然而,为了使其可重用,我需要能够向查询函数传递参数。应该有比声明全局变量并在查询函数中访问它们/重置它们更好的方法。感谢任何帮助转换这个:
//update images function
function updateGalleryCovers() {
var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
db.transaction(queryDB_u_g, errorCB);
}
//Query the database
function queryDB_u_g(tx) {
var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+getUserId()+'"';
tx.executeSql(query, [], querySuccess_u_g, errorCB);
}
//Query success callback
function querySuccess_u_g(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
// process results
}
}
变成这样:
//update images function
function updateGalleryCovers(userid) {
var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
db.transaction(queryDB_u_g, userid, errorCB);
}
//Query the database
function queryDB_u_g(tx, userid) {
var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+userid+'"';
tx.executeSql(query, [], querySuccess_u_g, errorCB);
}
//Query success callback
function querySuccess_u_g(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
// process results
}
}
谢谢!
事务函数是由sqlite而不是phonegap提供的。确实,由于sqlite接受的方法签名,您不能向函数传递额外的变量。
但是这里有一个相同的工作:
db_conn.transaction( function(tx){ your_function(tx, parameter1, parameter2) }, ErrorCallBack );
这里你传递了一个虚拟函数到事务成功回调,并带走了事务对象。
希望有帮助
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 使用javascript从数据库中添加表
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- 电话间隙等待数据库事务完成
- 在 Phonegap 中的数据库事务语句之前发出警报触发
- Azure 自定义 API:执行数据库事务返回超时
- 如何使用 Node 从单个连接/事务进行多个数据库调用.js而且繁琐
- 如何在事务中创建索引数据库存储
- 处理错误后提交索引数据库事务
- 处理数据库事务返回
- 如何等待数据库事务完成它的操作并在phonegap中返回值
- Firebase事务不会更新Firebase数据库中的实际值
- 我如何才能确保我不会;t执行同一数据库事务两次
- HTML5数据库-事务VS executeSql回调顺序
- HTML5/js sqlite数据库不输入事务功能
- 使用web数据库的Phonegap错误:"表达式mydb的结果.事务不是一个函数
- Javascript数据库事务处理错误,无法准备没有列的语句
- 如何传递参数到PhoneGap数据库事务函数