Чтение информации из базы данных sqlite, синтаксис? Как мне использовать его в веб-приложении html5? - PullRequest
2 голосов
/ 26 июня 2010

У меня есть веб-приложение, которое я создаю, и я только что начал с SQLite. Я смог создать свою форму, открыть созданную мной базу данных, создать таблицу и нужные мне поля и ввести данные в поля.

Теперь я пытаюсь прочитать данные обратно с помощью инструкции SELECT, чтобы показать их на экране и в виде списка столбцов. Я просто не знаю синтаксис для SELECT statemnt в javascript или HTML5 за пределами

'SELECT * FROM MyTable' ... Я знаю, что это можно сделать, просто нужна помощь с синтаксисом вывода результатов на экран.

Я начинаю с этого.

   

var db = window.openDatabase('TabOrder', '', 'Bar Tab Orders', 2500000);

 function insertDrinks(category, drinkname, our_cost, cust_cost){
  db.transaction(function(tx){
   tx.executeSql('INSERT INTO Drinks (category, drinkname, our_cost, cust_cost) VALUES (?, ?, ?, ?)', [category, drinkname, out_cost, cust_cost]);
  });
 }

 $(document).ready(function() {
  db.transaction(function(tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS Drinks(id INTEGER PRIMARY KEY Autonumber, category TEXT, drinkname TEXT, our_cost FLOAT(6,2), cust_cost FLOAT(7,2))', []);
  });
 });
 

У меня позже есть это ...



 View Cat / Drink List
 
 function readDrinks(id, category, drinkname, our_cost, cust_cost){
  db.transaction(function(tx) {
   tx.executeSql('SELECT * FROM Drinks', [id, category, drinkname, our_cost, cust_cost]);
  });
 document.write(id, category + " are the categories.");
 }
 


Я просто попытался собрать его вместе, и понятия не имею, что я делаю с ним, кроме базового SQL.

Любая помощь очень ценится ... и это для БД на стороне клиента, а не для подключения к сети.

спасибо ....

Ответы [ 2 ]

3 голосов
/ 26 июня 2010

См. спецификацию и этот учебник Apple .Короче говоря, вам нужно добавить данные и сообщения об ошибках.Кроме того, вы должны передавать пустой массив (или ноль), потому что ваш запрос не имеет параметров.

db.transaction(function(tx) {
   tx.executeSql('SELECT * FROM Drinks', 
                 [],
                 function(tx, results)
                 {
                   // results is a http://dev.w3.org/html5/webdatabase/#sqlresultset .  
                   // It has insertId, rowsAffected, and rows, which is
                   // essentially (not exactly) an array of arrays. 
                 },
                 function(tx, error)
                 {

                 }
   );
});

Вам решать, использовать ли именованные или анонимные функции.

РЕДАКТИРОВАТЬ: Iсделал рабочую демонстрацию на http://jsfiddle.net/WcV6Y/7/.Протестировано в Chrome 5.0.375.70.

2 голосов
/ 31 марта 2011

попробуйте что-то вроде этого

tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
             var len = results.rows.length;
             for (var i = 0; i < len; ++i) {
                var obj = results.rows.item(i);
                alert(obj);
              }
          });

также смотрите это для краткого учебника http://html5doctor.com/introducing-web-sql-databases/

...