Серверный JavaScript 1.4. Руководство по использованию

       

Отображение Значений Записи


Когда Вы создаёте курсор, он получает свойство colName для каждого именованного столбца виртуальной таблицы (отличное от свойств, соответствующих агрегатным функциям), как определено оператором SELECT. Вы можете получать доступ к значениям текущего ряда, используя эти свойства. В вышеприведённом примере курсор имеет свойства для столбцов id, name и city. Вы можете вывести значения для первого возвращённого ряда, используя следующие операторы:

// Создаётся Cursor-объект.


custs = connobj.cursor ("select id, name, city
   from customer order by id");// Прежде чем продолжить, убедитесь, что курсор действительно был возвращён
// и не было ошибки БД.

if ( custs && (connobj.majorErrorCode() == 0) ) {    // Получаем первый ряд.


   custs.next();    // Отображаем значение.


   write ("<B>Customer Name:</B>" + custs.name + "<BR>");
   write ("<B>City:</B> " + custs.city + "<BR>");
   write ("<B>Customer ID:</B> " + custs.id);

   //Закрываем курсор.


   custs.close();

}

Сначала текущим рядом является первый ряд таблицы. Выполнение метода next передвигает текущий ряд на первый ряд таблицы. Например, предположим, что это первый ряд курсора:

1 Sally Smith Suva

Тогда предыдущий код выведет:

Customer Name: Sally Smith
City: Suva
Customer ID: 1



Вы можете обращаться к свойствам Cursor -объекта (или, в действительности, объекта JavaScript) как к элементам массива. Элемент массива с индексом [0] соответствует первому столбцу, элемент массива с индексом [1] соответствует второму столбцу, и так далее.

Например, Вы можете использовать индекс для отображения тех же значений столбцов, что и в предыдущем примере:

write ("<B>Customer Name:</B> " + custs[1] + "<BR>");

write ("<B>City:</B> " + custs[2] + "<BR>");
write ("<B>Customer ID:</B> " + custs[0]);


Эта техника особенно применима внутри циклов. Например, Вы можете создать Cursor -объект с названием custs и вывести результат выполнения запроса в виде таблицы HTML с помощью следующего кода:

// Создаётся Cursor-объект.

custs = connobj.cursor ("select id, name, city

from customer order by id");// Прежде чем продолжить, убедитесь, что курсор действительно был возвращён
// и не было ошибки БД.

if ( custs && (connobj.majorErrorCode() == 0) ) {
    write ("<TABLE BORDER=1>");

   // Отображаем имена столбцов как заголовки.

   write("<TR>");
   i = 0;

   while ( i < custs.columns() ) {

      write("<TH>", custs.columnName(i), "</TH>");

      i++;
   }

   write("</TR>");   // Отображаем каждый ряд виртуальной таблицы.

   while(custs.next()) {

      write("<TR>");
      i = 0;

      while ( i < custs.columns() ) {

         write("<TD>", custs[i], "</TD>");

         i++;
      }

   write("</TR>");
   }

   write ("</TABLE>");   // Закрываем курсор.

   custs.close();
}

Этот код может вывести примерно такую таблицу:

ID

NAMECITY
1



Sally Smith

Suva



2

Jane Doe

Cupertino



3

John Brown

Harper's Ferry

В примере использованы методы, обсуждаемые в последующих разделах.
Содержание раздела