Я пытаюсь использовать SQLite в PhoneGap для iPhone, я столкнулся со следующей проблемой, пожалуйста, посмотрите на приведенный ниже код JavaScript.
Большое спасибо
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 выполнен, и она вызывается только один раз, что делает только последние переданные значения для добавления в таблицу. (Я получаю оповещение "entryIntoTransaction" только один раз, и это значение добавляется в базу данных. Большое спасибо за вашу помощь