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

       

Выполнение Хранимой Процедуры


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

Для выполнения хранимой процедуры Вы создаёте Stproc -объект, используя метод storedProc объектов database или Connection. Создание такого объекта автоматически вызывает хранимую процедуру. При создании объекта хранимой процедуры Вы специфицируете имя процедуры и любые параметры процедуры.

Например, у Вас есть хранимая процедура newhire, принимающая параметры - строку и целое число. Следующий вызов метода создаёт spObj -объект хранимой процедуры и вызывает хранимую процедуру newhire:

spObj = connobj.storedProc("newhire", "Fred Jones", 1996);

В общем, Вы обязаны предоставить значения для всех параметров ввода/вывода для хранимой процедуры. Если хранимая процедура имеет значение по умолчанию, определённое для одного из её параметров, Вы можете использовать директиву "/Default/" для специфицирования этого значения по умолчанию. Аналогично, если хранимая процедура может принимать null-значение одного из своих параметров, Вы можете специфицировать это null-значение либо директивой "/Null/", либо передав само null-значение.

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

spobj = connobj.storedProc("demosp", "Param_1", "Param_2", 1);

Альтернативно, чтобы передать null для второго параметра и использовать значение по умолчанию для третьего параметра, Вы можете использовать один из следующих операторов:

spobj = connobj.storedProc("demosp", "Param_1", "/Null/", "/Default/"); spobj = connobj.storedProc("demosp", "Param_1", null, "/Default/");

ПРИМЕЧАНИЕ:

В Informix значения по умолчанию обязаны появляться только после всех специфицированных значений. Например, Вы не можете использовать /Default/ для второго параметра процедуры, а затем специфицировать значение для третьего параметра.


  Вы можете также использовать директивы "/Default/" и "/Null/" для параметров ввода/вывода.



В Oracle хранимая процедура может принимать ref -курсоры как параметры input/output или как output-параметры. Например, у Вас имеется хранимая процедура Oracle под названием proc1, принимающая 4 параметра: ref -курсор, целочисленное значение, другой ref -курсор и другое целочисленное значение.

Вызов этой хранимой процедуры из SQL Plus может выглядеть так:

execute proc1 (refcursor1, 3, refcursor2, 5);

Однако, если Вы вызываете эту процедуру из приложения JavaScript, Вы не предоставляете ref -курсор-параметры. Вместо этого эквивалент может быть таким:

spobj = connobj.storedProc("proc1", 3, 5);

О параметрах вывода см. Параметры вывода не могут быть null; однако Вы можете присвоить null-значение параметрам ввода или ввода/вывода.

В таблице дано резюме по методам объекта хранимой процедуры.

Метод

Описание


resultSet


Возвращает следующий результирующий набор для хранимой процедуры.

Для Informix Вы можете иметь нуль или более результирующих наборов. Для других БД Вы можете иметь нуль, один или более результирующих наборов.


returnValue


Запрашивает return-значение хранимой процедуры.

Для Informix, DB2 и ODBC этот метод всегда возвращает null.


outParameters


Возвращает специфицированный параметр вывода.

Поскольку хранимые процедуры Informix не используют параметры вывода, не используйте этот метод с Informix.


outParamCount


Возвращает количество параметров вывода.

Для Informix этот метод всегда возвращает 0, поскольку хранимые процедуры Informix не используют параметров вывода.

Содержание раздела