Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> DAO - Data Access Objects >> Использование ODBCDirect >> Работа с хранимыми процедурами

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


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

  


Работа с хранимыми процедурами


Для выполнения хранимых процедур предназначен ODBCDirect-объект QueryDef. Он поддерживает хранимые процедуры как с входными параметрами, так и с возвращаемыми значениями. Входные параметры ? все, что передается процедуре в период выполнения, а возвращаемое значение _ значение, передаваемое процедурой по окончании своей работы. Например хранимая процедура может возвращать число обработанных ею записей.

Следующий код создает на сервере хранимую процедуру с именем GetEmps-

strSQL = "CREATE PROCEDURE GetEmps AS "
strSQL = strSQL & "SELECT * FROM EMPLOYEE;"
cnn. Execute strSQL

Если на сервере уже есть хранимая процедура с таким именем, то для ее удаления перед созданием новой можно воспользоваться оператором DROP, например:

strSQL = "DROP PROCEDURE GetEmps;"
cnn. Execute strSQL

Выполнить хранимую процедуру можно и методом Execute объекта Connection. Чтобы получить возвращаемое ею значение, создайте объект QueryDef и откройте на нем набор записей:

Set qdt = cnn.CreateQueryDet("qry", "{ call GetEmps() }")
Set rst = qdt.OpenRecordset

Объект Parameter позволяет работать с параметрами. Свойство Direction объекта Parameter сообщает DAO, в каком ?направлении? будет действовать параметр. Вообще говоря, драйвер ODBC пытается сам определять ?направление? параметра (входной он или выходной), но при желании его можно указать и через свойство Direction. В следующем примере создается простая хранимая процедура с входным параметром и возвращаемым значением. Затем процедура запускается, и мы получаем возвращаемое значение.

? создаем на сервере хранимую процедуру
strSQL = "CREATE PROCEDURE UpdateEmps (@invar int) AS RETURN @invar:"
cnn.Execute strSQL

? создаем объект QueryDet для выполнения хранимой процедуры
Set qdf = cnn.CreateQueryDet("qry". "{ ? = call UpdateEmps(?) }")

? готовим параметры
qdt. Parameters(0). Direction = dbParamReturnValue
qdf. Parameters(1) = 10
qdt. Execute

? получаем возвращаемое значение
var = qdf. Parameters(0). Value



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

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017