Project JEDI - Issue Tracker
Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0006276 [JEDI VCL] 00 JVCL Components crash always 2014-04-24 21:41 2014-09-03 11:39
Reporter Nagonzal View Status public  
Assigned To
Priority normal Resolution open  
Status acknowledged   Product Version Daily / GIT
Summary 0006276: Error access violation JvMemoryData.Loadfromdataset.. XE5
Description Excuse 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 Information The 'nombre' field is a varchar (150).
Tags No tags attached.
Attached Files zip file icon documents.zip [^] (74,329 bytes) 2014-07-17 22:26

- Relationships

-  Notes
(0020954)
AHUser (developer)
2014-04-24 23:02

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);
(0021003)
Nagonzal (reporter)
2014-07-17 22:26

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:23 Nagonzal Issue Monitored: Nagonzal
2014-07-17 22:24 Nagonzal Issue End Monitor: Nagonzal
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


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker