ADOCommand - call stored procedure

Добрый день!

Вопрос такой - можно ли с помощью ADOCommand присоединиться к другой базе Oracle и вызвать хранимую процедуру? Процедура имеет два параметра - один типа IN, другои типа OUT. Я получаю ошибку "ORA-01008: not all variables bound"

CRM версия 3.1.1.53

Нравится

16 комментариев

Здесь Кирилл отписался, что у него все получилось.

Там неуказанно как именно Кирилл это сделал, но, как я понял, я делаю тем же методом, но получаю эту ошибку.
код ADOCommand:

call "TestSP"(:USERID,:STATUSS)

код JavaScript:

var sp = Services.GetNewItemByUSI('acmd_TestSP');	
sp.Parameters.ItemsByName('USERID').Value = 'username';
sp.Parameters.ItemsByName('STATUSS').Value = '';	
sp.Execute();
var stat = sp.Parameters.ItemsByName('STATUSS');

Пытался реализовать и с ADOCommand и с ADODataset, не получается

Райвис, попробуйте написать так:

call "TestSP"(:pUSERID,:pSTATUSS)

Спасибо! Забыл, что параметрам надо добавить "p". Теперь другая ошибка - "Parameter object is improperly defined", буду смотреть дальше, в чём дело.

Есть идеи как параметра правилЬно подать? А то у меня всё ещё не получается :/

Код процедуры

create or replace procedure "TestSP" (USERID in varchar2, STATUSS out varchar2) is 
begin
	if USERID = 'user1' then
		statuss := 'OK';
	else
		statuss := 'NOK';
	end if;
end;

Пытался вызвать процедуру без OUT параметра, тоже не получается

Райвис, добрый день.

Описанная Вами проблема передана в департамент разработки продуктов для анализа. Будем сообщать о любой дополнительной информации по данной проблеме.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Спасибо! Мне бы сгодился простой пример. Конечно, я могу сделать по другому с помощью триггеров, но это будет на много длиннее и подобные решение надо будет использовать и в будущем. Хочется сделать красиво.

По Вашей проблеме зарегистрирован инцидент №061437.
Ответ добавлен в комментарии по Вашему обращению.

Terrasoft Support Team

Коллеги, приветствую!

Каким образом решилась данная проблема? У меня сейчас очень похожая возникла.

Вадим, какая у Вас сборка?

Конкретно данная проблема была решена, насколько я понял, в ядре в сборке 3.1.1.62

Во вложении примеры вызова.

У него 3.2.1.x.

Да, всё верно. 3.2.1.

Дмитрий, а зачем в тексте запроса "begin, end" и почему название процедуры в кавычках?

И ещё вопрос, обязательно ли название параметров начинать с префикса "p"?

Это пример для Оракла, там и "р", и кавычки нужны.

Понял. Спасибо.

Показать все комментарии