РезультатВызоваПроцедурыSql
Стд::БазаДанных::Sql::РезультатВызоваПроцедурыSql Базовые типы: Закрываемое, Объект |
Иерархия типа
Результат выполнения запроса, вызывающего процедуру.
Сравнение ссылочное
Примеры
Пример вызова хранимой процедуры в MS SQL. В примере вызывается хранимая процедура с сигнатурой dbo.insert_or_update_doc(@id uniqueidentifier, @content varchar(50), @res bit OUT). Процедура вставляет новую запись в таблицу, если в ней нет записи с ключом, равным параметру @id. Если запись есть, то происходит обновление поля значением параметра @content. В параметре @res возвращается значение Истина, если запись обновлена.
метод СоздатьИлиОбновить(Соединение: СоединениеSql, Ид: Строка, Содержание: Строка): Булево
пер Вызов = Соединение.СоздатьЗапросВызовПроцедуры("EXEC dbo.insert_or_update_doc &Ид, &Содержание, &Обновлено;")
Вызов.УстановитьЗначениеПараметра("Ид", Ид)
Вызов.УстановитьЗначениеПараметра("Содержание", Содержание)
Вызов.УстановитьТипВыходногоПараметра("Обновлено", ТипДанныхSql.Boolean)
исп Рез = Вызов.Выполнить()
возврат Рез.Получить("Обновлено") как Булево)
;
В примере вызывается анонимный блок Oracle, из которого в свою очередь вызывается функция с сигнатурой esb.echo(input INT, output OUT INT, input_output IN OUT INT) RETURN INT.
структура ЗаписьВызова
пер Результат = -1
пер Входной = -1
пер Выходной = -1
пер ВходнойВыходной = -1
;
метод ВызовБлока(Соединение: СоединениеSql): ЗаписьВызова
пер Запрос =
"BEGIN
&Результат := esb.echo(&Входной, &Выходной, &ВходнойВыходной);
END;"
пер Вызов = Соединение.СоздатьЗапросВызовПроцедуры(Запрос)
Вызов.УстановитьТипВыходногоПараметра("Результат", ТипДанныхSql.Integer)
Вызов.УстановитьЗначениеПараметра("Входной", 2)
Вызов.УстановитьТипВыходногоПараметра("Выходной", ТипДанныхSql.Integer)
Вызов.УстановитьЗначениеВыходногоПараметра("ВходнойВыходной", 100, ТипДанныхSql.Integer)
исп Рез = Вызов.Выполнить()
возврат новый ЗаписьВызова(Рез.Результат как Число,
Рез.Получить("Входной") как Число,
Рез["Выходной"] как Число,
Рез.ВходнойВыходной как Число)
;
Методы
Закрыть
Закрыть()
Закрывает результат выполнения запроса и освобождает связанные с ним ресурсы.
КакСоответствие
КакСоответствие(): Соответствие<Строка, Объект>
Возвращает соответствие, в котором ключ - имя параметра, а значение - значение параметра.
Получить
Возвращает значение параметра запроса c указанным именем. Если нет параметра с указанным именем, выбрасывается исключение ИсключениеНедопустимыйАргумент. Для входных параметров возвращается заданное при вызове значение. Для выходных параметров - установленное процедурой.