Передача результатов SQL-запросов глобальным переменным (db.transaction / tx.executeSql / JavaScript) - PullRequest
0 голосов
/ 14 апреля 2011

У меня следующая проблема при передаче результата SQL-запроса в глобальную переменную.

Я использую этот очень простой источник

<pre> var aGlobal = new Array();</p> <p>db.transaction( function( tx ) { tx.executeSql( 'SELECT * FROM AddressBook', [], getSQLValues ) });</p> <p>function getSQLValues(tx, SQLResultSet) { for (var i=0; i < SQLResultSet.rows.length; i++) { aGlobal[i] = SQLResultSet.rows.item(i); } }</p> <p>console.log(aGlobal.length); // 0 alert( aGlobal.length ); // no Values get passed WITHOUT this alert! console.log(aGlobal.length); // equals SQLResultSet.rows.length</p> <p>for (var i=0; i < aGlobal.length; i++) { console.log(aGlobal[i]['id']+' - '+aGlobal[i]['AddrValues']); // can see the values }

БД существует, БД содержит действительные данные, БД локальная, HTML-файл является локальным, локальный HTML-файл открывается локально в Safari.

Строки SQLResultSet, которые хранятся в глобальном массиве, могут быть доступны только последующему сценарию после появления предупреждения. Без предупреждения я вижу содержимое глобального массива при проверке консоли.

Любые предложения о том, как достичь содержимого глобального массива без предупреждения?

Кстати, предупреждение также может просто читать


alert('blah');

Большое спасибо заранее за любой полезный ответ, Karl

1 Ответ

1 голос
/ 16 мая 2011
...