Вызов курсора осуществить из Query Analyzer с проверкой наличия хранимой процедуры в базе данных.
Для процедуры Proc_Stores это можно выполнить с помощью фрагмента программы следующего вида
USE <имя БД> /* Связь с базой данных */
IF (SELECT object_id('proc_stores')) IS NOT NULL
PRINT 'Процедура существует, ожидайте результат...'
PRINT ''
EXECUTE proc_stores /* Выполнение курсора */
ELSE
PRINT 'Процедура в базе данных отсутствует'
Здесь функция select(object_id('proc_stores')) возвращает номер объекта в базе данных, если объект существует. Если объект 'proc_stores' в базе данных не существует, то select(object_id('proc_stores')) вернет значение NULL.
Для идентификации базы данных можно использовать либо окно DB на панели инструментов Query Analyzer, либо команду USE <имя базы> данных как показано в примере.
(b)
Пример (тот же) реализующий работу курсора клиента.
Для этого необходимо воспользоваться синтаксическими конструкциями шагов 1 – 14, и активизировать их в окне Query Analyzer. При этом вызов процедуры, не используется.
(c)
Пример (тот же) реализующий работу смешанного курсора.
Для создания курсора как выходного параметра процедуры, необходимо часть синтаксических конструкций курсора, в частность запрос и открытие курсора, сохранить как хранимую процедуру на стороне сервера, а считывание очередной строки и формирования результата активизировать на стороне клиента (приложения).
Общий синтаксис смешанного курсора приведен ниже.
Хранимая процедура на сервере.
CREATE PROC my_proc @cur CURSOR VARYING OUTPUT
AS
SET @cur = CURSOR FORWARD_ONLY STATIC
FOR
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.