Здравствуйте, уважаемые форумеры
Не могу побороть глюкодром с ADO
Процедура с DML создает новую запись и возвращает её id:
package body MYPCK
...
procedure INSERTSh(
prm_desc in UITS.DESCR%TYPE,
l_sid out UITS.ID%TYPE
)
is
begin
insert into UITS (descr, is_closed)
values (prm_desc, 0);
commit;
select UITS.CURRVAL into l_sid from dual;
return;
end INSERTSuit;
Вызова на стороне клиента, используется TADOStoredProc, параметры формиру.тся run-time
//присваивание имени процедуры и прочая хрень
// ...
// каждый из двух параметров добавляется так:
ADOProc1.Parameters.Items[cnt].Name := p_name;
ADOProc1.Parameters.Items[cnt].DataType := p_datatype;
ADOProc1.Parameters.Items[cnt].Direction := p_dir;
ADOProc1.Parameters.Items[cnt].Value := p_val;
ADOProc1.Parameters.Items[cnt].Size := SIZEOF(p_val);
// вызов
ADOProc1.Open;
Валится с ошибкой
PLS-00306: Неверное количество или типы аргументов для вызова. То есть модуль процедуру находит и пытается вызвать, но ему не нравятся параметры. Все параметры параметров (сори за тавталогию) проверены десять раз и стопудово правильные. Есть ещё параметр Type у параметра Value, но я к нему так и не нашел доступ. Может, нужно ещё что-то указать? В чем может быть косяк?