View Issue Details

IDProjectCategoryView StatusLast Update
0006276JEDI VCL00 JVCL Componentspublic2014-09-03 11:39
ReporterNagonzalAssigned To 
PrioritynormalSeveritycrashReproducibilityalways
Status acknowledgedResolutionopen 
Product VersionDaily / GIT 
Target VersionFixed in Version 
Summary0006276: Error access violation JvMemoryData.Loadfromdataset.. XE5
DescriptionExcuse me english.


I'm migrating de Delphi XE2 to Delphi XE5.
 

I get exception doing a Loadfromdataset or loading the data one to one:
 
raise exception class $C0000005 with message 'access violation at 0x00406a6b: read of address .......'.

The following query should display about 10000 rows.

  SQLQuery := TQuery.create(nil);
  ...
  SQLQuery.Close;
  SQLQuery.SQL.Clear;
  SQLQuery.SQL.ADD(' SELECT nombre from tercero ');
  SQLQuery.open;

  memorydata.Close;
  memorydata.LoadFromDataSet(SQLQuery,-1,lmAppend);


or doing

   memorydata.Close;
   memorydata.Open;
   SQLQuery.First;
   while not SQLQuery.Eof do
   begin
      memorydata.Append;
      memorydata.FieldByName('NOMBRE').ASSTRING := SQLQuery.FieldByName('NOMBRE').ASSTRING;
      memorydata.Post;
     SQLQuery.Next;
   end;


Not always shows the error in the same row and have noticed that if you have more fields jvmemorydata the error faster.

When I break the code, it is truncated in the procedure InternalSetFieldData of the unit TJvMemoryData

Additional InformationThe 'nombre' field is a varchar (150).
TagsNo tags attached.

Activities

AHUser

2014-04-24 23:02

developer   ~0020954

I cannot reproduce this.

var
  I: Integer;
  S: string;
begin
  ClientDataSet1.CreateDataSet;
  S := StringOfChar('x', 150);
  for I := 0 to 9999 do
  begin
    ClientDataSet1.Append;
    ClientDataSet1nombre.AsString := S;
    ClientDataSet1.Post;
  end;
  ClientDataSet1.First;

  JvMemoryData1.CopyStructure(ClientDataSet1);
  JvMemoryData1.LoadFromDataSet(ClientDataSet1, -1, lmAppend);

2014-07-17 22:26

 

documents.zip (74,329 bytes)

Nagonzal

2014-07-17 22:26

reporter   ~0021003

Good afternoon

Excuse me english.


The example works, but with the String data type that we handle, does not work.

We decided to wait and we are migrating XE2 to XE6 and the error persists. The error is generated from the first execution of the query.


The query de la Image3 should return a result of 33946 rows and returns a random number of records between 6000 and 15000 rows and generate the error of the Image4.

At the function CalcFieldLen of the unit JvMemoryDataset - Image2- for example switching the size del ftString to Variant, the query works but I truncated fields a 16 characters.

There is an error with the capacity of the Ftstring field.

I am installing the JVCL348CompleteJCL26-Build5178.

Attached images with IDE environment I'm driving.


Thank you for the given attention and I hope you can assist us with this.

Issue History

Date Modified Username Field Change
2014-04-24 21:41 Nagonzal New Issue
2014-04-24 23:02 AHUser Note Added: 0020954
2014-04-24 23:02 AHUser Status new => feedback
2014-07-17 22:26 Nagonzal File Added: documents.zip
2014-07-17 22:26 Nagonzal Note Added: 0021003
2014-09-03 11:39 obones Status feedback => acknowledged