592_____________________________________________Глава 10

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

В процедурах можно вводить внутренние локальные переменные. Они вводят-
ся конструкцией вида

DECLARE VARIABLE <список переменных и их типов>
помещаемой после ключевого слова as.

10.3.5.2 Вызов выполняемых хранимых процедур из приложения

Для вызова выполняемых хранимых на сервере процедур в библиотеке
C+4-Builder на странице Data Access имеется компонент StoredProc. Он позволяет
передавать информацию в хранимые процедуры и воспринимать возвращаемую
информацию с помощью параметров.

Перенеся на форму компонент StoredProc, надо прежде всего установить его
свойство DatabaseName, выбрав из списка псевдоним базы данных, с которой вы
хотите работать. Затем можно установить свойство StoredProcName. В выпадаю-
щем списке этого свойства перечислены хранимые процедуры, определенные в
базе данных.

Входные параметры процедуры заносятся в процессе работы в свойство Pa-
rams. Имена параметров, содержащихся в этом свойстве, вы можете узнать, по-
смотрев это свойство с помощью Инспектора Объектов. При этом вы увидите то же
окно установки атрибутов параметров, которое ранее было рассмотрено в компо-
ненте Query (рис. 10.2). Остановимся только на одном свойстве, которое ранее не
рассматривалось — ParamType. Это свойство — тип параметра, указывающий на
способ его использования, может принимать значения:

ptUnknown    Тип неизвестен или не определен. В этом случае перед выпол-
нением процедуры необходимо установить этому параметру
другой, определенный тип

ptinput       Входной параметр, передаваемый в процедуру
ptOutput      Выходной параметр, возвращаемый из процедуры
ptInputOutput Параметр может использоваться и как входной, и как выходной

ptResult      Параметр используется как возвращаемая величина. Обычно

применяется для возвращения сообщений об ошибках или о ре-
жиме завершения. Хранимая процедура может иметь только
один параметр такого типа

Если вы связываете компонент StoredProc с конкретной процедурой во время
проектирования, то свойства ParamType всех параметров устанавливаются авто-
матически в соответствии с описанием процедуры. Так что вам не приходится их
устанавливать вручную.

Перед вызовом процедуры приложение должно занести в Params значения па-
раметров. Свойство ParamBindMode компонента StoredProc задает способ про-
граммного доступа к параметрам. Это свойство может принимать значения: рЬВу-
Name — доступ по имени, и pbByNumber — доступ по индексу. Как правило, ис-
пользуется доступ по имени методом ParamByName. Например, StoredProcl->Pa-
ramByName("PFAM") — значение параметра PFAM. В редких случаях, когда
имена параметров неизвестны, можно использовать доступ по индексу. Последова-
тельность параметров в свойстве Params определяется последовательностью их