Subject Re: [IBO] DML Caching
Author mkl20uk@yahoo.co.uk
--- In IBObjects@y..., "Geoff Worboys" <geoff@t...> wrote:
> If you link with the VCL debug libraries, put a break point in and
try
> to step down into the code can you get any deeper than this? Just
> trying to work out exactly what the callstack is to the actual point
> of exception.
>


I may need some help on that because I haven't got into callstacks
yet but here is a but more information that may point the way a bit.

The error is generated within TIB_Row.GetColumnName and on the line

Result[I] := TIB_Column( tmpColumns[I] ).AsVariant;

tmpColumns are the two keys, in my case, PCAT_UNIQUE_REF and
PCAT_SYSTEM_REF. The value of PCAT_UNIQUE_REF is 12 and
PCAT_SYSTEM_REF is 0. Both are 64bit numbers.

with the debugger the statement
TIB_Column( tmpColumns[0] ).AsString generates 12
which is what it should. Using AsInteger generates 12 which is
what it should. Using .AsVariant generates an error of
"Unknown type: 14". Stepping though this code I think type 14
is the result of TIB_Column.GetVariant where if
IBO_VCL40_OR_GREATER is True (which it is for me) sets

TVarData(Result).VType := VT_DECIMAL_X;

where VT_DECIMAL_X is 14

Does this help?

Martin