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


         

Работа с Результирующими Наборами


Этот этап применяется ко всем хранимым процедурам.

Как указано в разделе , разные БД возвращают результирующие наборы разными способами. Например, у Вас имеется таблица CUSTINFO со столбцами id, city и name. В Sybase Вы можете использовать такую процедуру для получения первых 200 рядов таблицы:

create proc getcusts as
begin
   select id, name, city from custinfo where custno < 200
end

Если CUSTINFO является таблицей Informix, эквивалентная процедура в Informix может быть:

create procedure getcusts returning int, char(15), char(15);

define rcity, rname char (15);
define i int;foreach
    select id, name, city into i, rname, rcity
       from custinfo
      where id < 200;

   return i, rname, rcity with resume;
end foreach;
end procedure;

Если CUSTINFO - таблица Oracle, эквивалентная процедура Oracle может быть:

create or replace package orapack as
   type custcurtype is ref cursor return custinfo%rowtype
end orapack;create or replace custresultset (custcursor inout orapack.custcurtype)
as begin
   open custcursor for select id, name, city from custinfo
      where id < 200

end custresultset;

Во всех случаях Вы создаёте resultSet -объект для получения информации из хранимой процедуры. Вы делаете это через использование метода resultSet объекта хранимой процедуры так:

resObj = spObj.resultSet();

Как и для Cursor -объектов, resultSet -объекты содержат текущий ряд, то есть ряд, на котором стоит указатель в результирующем наборе. Вначале указатель позиционирован перед первым рядом результирующего набора. Чтобы увидеть значения рядов результирующего набора, Вы используете метод next для перемещения указателя по рядам результирующего набора, как показано в следующем примере:

spobj = connobj.storedProc("getcusts");

if ( spobj && (connobj.majorErrorCode() == 0) ) {

   // Создаётся новый resultSet-объект.
    resobj = spobj.resultSet();   // Перед тем как продолжить, убедитесь, что Вы получили результирующий набор.



Содержание  Назад  Вперед