SQLite в PhoneGap iPhone - PullRequest
       15

SQLite в PhoneGap iPhone

1 голос
/ 04 апреля 2011

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

1 Ответ

1 голос
/ 09 августа 2011

Я решил эту проблему, поместив

транзакции.executeSql ()

внутри цикла for и повторил его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...