Code: Select all
ZProc.StoredProcName:='ADD_DOC';
ZProc.ParamByName('l_mifare_id').AsString:=Account.MifareID;
ZProc.ExecProc();
EZVariantExeption - Types mismath
ZVariant.pas - 395
Backtrace show, that problem in TZOracleCallableStatement.ArrangeInParams() - it put additional InParamValues[] item and shift all items to right. Comment says {now move Returnvalue to first position}, but actually, ReturnValue goes as last parameter.
I fixed it, function called properly and even return result, but OCI can't write back some writable parameters and call Oracle exception. Maybe I can fix it, but it take many time to understand whole process.
I suggest don't separate abstract parameters (TParam) and actual Oracle parameters (TZOracleParam) in different lists. TZOracleParam can be derieved from TParam or have TParam as field - it solve many troubles with mapping.