Компонент TStoredProc используется для выполнения из приложений C++ Builder хранимых процедур, содержащихся на серверах баз данных. Хранимая процедура представляет собой скомпилированную программу на процедурном расширении языка SQL, характерном для выбранного сервера. Хранимые процедуры могут возвращать наборы данных, основанные на выполнении запроса, если такие процедуры поддерживаются выбранным сервером (в этом случае TStoredProc может использоваться так же, как TQuery, и, так как при этом не требуется компиляция запроса сервером, использование TStoredProc может повысить производительность выполнения выбора данных), могут возвращать числовые параметры (в этом случае эти параметры можно использовать в приложении) и могут ничего не возвращать, а выполнять какие-либо действия на сервере баз данных. Хранимые процедуры также могут иметь входные параметры, передаваемые им из клиентского приложения.
Основные свойства компонента TStoredProc: DatabaseName - имя (alias) базы данных, в которой содержится данная процедура, StoredProcName - имя хранимой процедуры, Params (массив компонентов TParams) - параметры хранимой процедуры, а также ряд свойств, унаследованных от TDataS e t: Active, Fields, Eof, Bof, State и др. Основные методы: ExecProc - выполняет хранимую процедуру, ParamByName - возвращает параметр, используя его имя. TStoredProc обладает также рядом методов, унаследованных от TDataSet: Append, AppendRecord, Close, Ope n , Delete, Edit, Post и т.д.
Рассмотрим простейший пример использования хранимой процедуры. Для этой цели воспользуемся локальным сервером InterBase, входящим в комплект поставки C++ Builder. Создадим новый проект, на главную форму которого поместим компонент TStoredProc, четыре компонента TEdit и компонент TButton. Установим значение свойства DatabaseName компонента StoredProc1 равным IBLOCAL (этот псевдоним демонстрационной базы данных Employee.gdb создается автоматически при установке сервера InterBase). Далее щелкнем на колонке значений напротив свойства StoredProcName, после чего на экране должен появиться стандартный диалог для ввода имени пользователя и пароля (рис.1):