Передать массив в качестве параметра ХП (Invalid class type cast)

Обсуждение возникших проблем, предложений и ошибок ODAC компонентов

Ответить
cptngrb
Сообщения: 1
Зарегистрирован: Пт 05 апр 2019 08:55

Передать массив в качестве параметра ХП (Invalid class type cast)

Сообщение cptngrb » Пт 05 апр 2019 09:10

Не могу разобраться как правильно и быстро можно записать массив через ХП

на сервере

Код: Выделить всё

TYPE TAB_pl_dt IS TABLE OF date INDEX BY PLS_INTEGER;
procedure ins_buf(mDate  in TAB_pl_dt);
на Delphi

Код: Выделить всё

oProc:= TOraStoredProc.Create(nil);
oProc.Params.Clear;
oProc.StoredProcName:= 'pkg.ins_buf';
oProc.Connection := oConnection;
oProc.Prepare;

mDate:= VarArrayCreate([0, SizeArr-1], varDate);

oProc.Params[0].DataType:= ftDateTime;
oProc.Params[0].ParamType:= ptInput;
oProc.Params[0].Table:= True;
oProc.Params[0].Length:= SizeArr;
oProc.Params[0].Value:= mDate;  //Invalid class type cast
Подскажите, почему выскакивает ошибка Invalid class type cast

bork
Devart Team
Сообщения: 16
Зарегистрирован: Вт 06 сен 2011 09:22

Re: Передать массив в качестве параметра ХП (Invalid class type cast)

Сообщение bork » Пт 05 апр 2019 13:56

Попробуйте присовить значения в цикле:

Код: Выделить всё

  for i := 0 to SizeArr-1 do
    oProc.Params[0][i].AsDateTime := mDate[i];

Ответить