我在worklight 6.0中创建了一个mysql适配器 我想使用存储过程addproduct.can在mydql数据库中插入数据。任何人都告诉我将调用该过程的javascript是什么。
我的main.js文件
function wlCommonInit(){
}
function addProductRec()
{
var validate = true;
var query = {};
if ($("#prod_name").val() != "") {
query.productName = $("#prod_name").val();
} else {
validate = false;
alert("invalid");
}
if ($("#prod_model").val() != "") {
query.Model = $("#prod_model").val();
} else {
validate = false;
}
if ($("#prod_qty").val() != "") {
query.Qty = $("#prod_qty").val();
} else {
validate = false;
}
if ($("#prod_price").val() != "") {
query.price = $("#prod_price").val();
} else {
validate = false;
}
if (validate) {
var queryData = JSON.parse(JSON.stringify(query));
WL.Client.invokeProcedure({
adapter : "Product",
procedure : "addProduct",
parameters : [ queryData.productName, queryData.Qty,
queryData.Model, queryData.price ]
}, {
onSuccess : function(result) {
$.mobile.changePage("#list", {
transition : "slide",
reverse : false,
changeHash : false
});
alert("added");
},
onFailure : failureCallback
});
} else {
alert("All fields required");
}
}
我的adapter.js
var addStatement = WL.Server.createSQLStatement("insert into product "+
" (productName, Qty, Model, price) values (?, ?, ?, ?)");
function addProduct(productName,Qty,Model,price) {
return WL.Server.invokeSQLStatement({
preparedStatement : addStatement,
parameters : [productName,Qty,Model,price]
});
}
答案 0 :(得分:0)
我不确定为什么Jiachen的答案被删除了,这是正确的答案,甚至在评论的问题作者中也证实了这一点!
重复:
如果您的构建目标是" localhost"然后它就无法在Android或iOS模拟器或设备上工作,因为即使它在" localhost"上运行,它也有不同的IP。
从" localhost"更改服务器的主机到实际的IP地址并重新构建项目。 IP地址将传播到设备的wlclient.properties/worklight.plist文件,其中存储了服务器连接信息。同时双重验证设备和服务器是否在同一网络上。