Posted By: Juktus RecordSize range error - 03/28/14 03:53 PM
Hello.

I found some problems with property VCL DataSet.RecordSize. In VCL its type is Word and can be simply exceeded with big selects (using for example varchar2 functions) or when you use new Oracle 12 Database with option varchar2=32k.
I saw that in your components you use variable FRecordSize(Integer) but also override function GetRecordSize which generate error when FRecordSize is bigger than Word size. What are you going to do with this problem, specially when new Oracle 12 database will be in common use.

Best regards
Juktus
Posted By: Marco Kalter Re: RecordSize range error - 03/31/14 09:56 AM
We'll need to add support for 32k varchar2 fields. This is on the to-do list.
Posted By: Juktus Re: RecordSize range error - 04/08/14 12:03 PM
When can i expect this solution?

Best regards
Grzegorz Chromik
Posted By: Marco Kalter Re: RecordSize range error - 04/09/14 08:45 AM
We don't have a date yet.
Posted By: Fredrik Re: RecordSize range error - 12/14/15 09:58 AM
It's about time the problem with recordsize gets fixed.
It's strange that TDataset still declares property RecordSize as Word but TDataset does not use the property its own code anyways.
In TOracleDataset the field FRecordSize is declared as integer and in TOracleDatasets code the field is used instead of the property everywhere except in ClearCalcFields.

procedure TOracleDataSet.ClearCalcFields(Buffer: TRecordBuffer);
begin
FillChar(PRecordData(Buffer)^.Bytes[RecordSize], CalcFieldsSize, 1);
end;


This code results in overwrites of the buffer if RecordSize exceeds the size of Word. This is obviously an oversight by allroundaotomations and should be fixed asap without. I have of course fixed it myself, but i really wish I could use your code without my own bugfixes.
In our case this has nothing to do with support for 32k varchar2 fields, but we have some table with many big varchar2 fields.
© Allround Automations forums