Icon View Incident Report

Serious Serious
Reported By: Erwin Schatzle
Reported On: 4/24/2014
For: Version 4.38 Build 2
# 4039 Reading Byte/VarByte Field Values Using Delphi XE3 or Higher Can Cause Invalid Results

The following is a code sample which works in XE2 but not in XE5.


procedure TForm7.btnInsertClick(Sender: TObject);
var
  Buf: TMemValue;
begin
  with DBISAMTable1 do
  begin
    if not Active then
      Open;
    Insert;
    FieldByName('TagName').AsAnsiString := AnsiString('TEST');
    Buf.Length := 2;
    Buf.w := 35;
    FieldByName('Value').SetData(Pointer(@Buf));
    Post;
    FlushBuffers; 
    Buf.i := 0;
    FieldByName('Value').GetData(@Buf);
   Memo1.Lines.Add('GetData.Len=' + IntToStr(Buf.Length) + ' w:' + IntToStr(Buf.w)); //- Buffer is empty in XE5, in XE2 Buf.w=35
  end;
end;



Resolution Resolution
Fixed Problem on 4/25/2014 in version 4.39 build 1


Products Affected Products Affected
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image