PhoneGap中的SQLite iPhone
问题描述:
我正在尝试在iPhone手机版中使用SQLite,我面临以下问题,请看下面的JavaScript代码。 非常感谢PhoneGap中的SQLite iPhone
function testAsSeperateFunctionDB(contact)
{
database.transaction(
function(transaction){
alert("enteringIntoTransaction");
transaction.executeSql(
'INSERT INTO testTableThree (contactId, mrMrs, firstName,
lastName, jobTitle, bActive, homePhone, contactType, accountId,
workPhone, cellularPhone, workFax, contactEmail, owner,
alternateCountry, alternateAddress1, alternateAddress2,
alternateZipCode, alternateCity, alternateProvince)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);',
[contact.contactId, contact.mrMrs,
contact.firstName, contact.lastName,
contact.jobTitle, contact.bActive,
contact.homePhone, contact.contactType,
contact.accountId, contact.workPhone,
contact.cellularPhone, contact.workFax,
contact.contactEmail, contact.owner,
contact.alternateCountry, contact.alternateAddress1,
contact.alternateAddress2, contact.alternateZipCode,
contact.alternateCity, contact.alternateProvince],
//Callback after successful transaction
function(transaction, results) {
alert("added");
},
//Callback after error in transaction
function(transaction, error) {
alert("Error" + error.code);
}
);
}
);
}
我使用上述功能的一组联系方式添加到一个表中,我将传递一个JSON对象给这个函数。我在下面的循环结构中调用上面的函数。
for(i = 0; i < contactFullObjArray.length; i++) {
//Parse the ContactFull object
var contact=ContactFull.parse(contactFullObjArray[i]);
testAsSeperateFunctionDB(contact);
}
这里发生的执行整个for循环之后才交易发生,它获取调用一次,这使得仅传递给被添加到表中的最终值。 (我收到警报“enteringIntoTransaction”只有一次,并将该值获取添加到数据库中。非常感谢您的帮助
答
我通过将
transaction.executeSql()解决了这个
在for循环中并重复遍历它。