Retrieve DataTable Schema causes Invalid pointer operation in Delphi 11 IDE

Hello,

After I upgraded to DataAbstract 10.0.0.1589 from 10.0.0.1579,
when in IDE call “Retrieve DataTable Schema” I got
“Invalid pointer operation” with stack

[307C14C0]{RemObjects_Core_D28.bpl} Uromessage.TROMessage.ProcessException + $38
[30883519]{RemObjects_Core_D28.bpl} Urobinmessage.TROBinMessage.IntReadFromStream + $201
[307C12DA]{RemObjects_Core_D28.bpl} Uromessage.TROMessage.ReadFromStream + $3A
[30883E03]{RemObjects_Core_D28.bpl} Urobinmessage.TROBinMessage.ReadFromStream + $1B
[308414D6]{RemObjects_Core_D28.bpl} Urotransportchannel.TROTransportChannel.Dispatch + $162
[30927455]{RemObjects_Core_D28.bpl} Uroremoteservice.TRORemoteService.QueryServiceInfo + $B1
[30E3AB7F]{DataAbstract_Core_D28.bpl} Udaremotedataadapter.TDARemoteDataAdapter.InternalReadSchema + $8F
[30E301C9]{DataAbstract_Core_D28.bpl} Udadataadapter.TDABaseDataAdapter.ReadSchema + $3D
[30E2F142]{DataAbstract_Core_D28.bpl} Udadataadapter.TDABaseDataAdapter.GetSchema + $A
[30E3C8CB]{DataAbstract_Core_D28.bpl} Udaremotedataadapter.TDARemoteDataAdapter.InternalFillSchema + $113
[30E2DFE5]{DataAbstract_Core_D28.bpl} Udadataadapter.TDABaseDataAdapter.FillSchema + $8D
[30E01496]{DataAbstract_Core_D28.bpl} Udadatatable.TDADataTable.LoadSchema + $9A
[30734D02]{DataAbstract_IDE_D28.bpl} Udadataabstracteditors.TDADataTableEditor.ExecuteVerb + $226
[6D83FD6A]{vcldesigner280.bpl} VCLSurface.TVclDesignSurface.ComponentVerb (Line 3132, "VCLSurface.pas" + 3) + $B
[558B449A]{vcl280.bpl  } Vcl.Menus.TMenuItem.Click (Line 2619, "Vcl.Menus.pas" + 19) + $8
[558B5C5B]{vcl280.bpl  } Vcl.Menus.TMenu.DispatchCommand (Line 3576, "Vcl.Menus.pas" + 5) + $2
[558B6ED6]{vcl280.bpl  } Vcl.Menus.TPopupList.WndProc (Line 4749, "Vcl.Menus.pas" + 4) + $E
[558B6E25]{vcl280.bpl  } Vcl.Menus.TPopupList.MainWndProc (Line 4724, "Vcl.Menus.pas" + 2) + $5
[560F5C1C]{rtl280.bpl  } System.Classes.StdWndProc (Line 18517, "System.Classes.pas" + 8) + $0
[58195AEB]{vclide280.bpl} IDEVirtualTrees.TVirtualTreeHintWindow.IsHintMsg (Line 7127, "IDEVirtualTrees.pas" + 7) + $13
[558D5263]{vcl280.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 11488, "Vcl.Forms.pas" + 23) + $1
[558D52A6]{vcl280.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 11518, "Vcl.Forms.pas" + 1) + $4
[558D55E5]{vcl280.bpl  } Vcl.Forms.TApplication.Run (Line 11657, "Vcl.Forms.pas" + 27) + $3
[00AD80A2]{bds.exe     } bds.bds (Line 227, "" + 16) + $2

After close server fastmm report
Server_MemoryManager_EventLog.txt (6.9 KB)

1 Like

Hi,

I have tried this scenario and it works as expected:

  • launch DAServer
  • create a new project
  • drop RDA, setup his TargetUrl as http://localhost:8099/bin
  • RDA.Create Data Tables and RDA.Retrieve DataTable Schemas several times. no any exception were raised

Do you have any instructions for reproducing this issue?

Hello,

I made a new client and server project and it works ok.

I replaced DASchema with DASchema from my project and the problem appeared.
I can’t figure out what is wrong with my DASchema.
I have attached the project.
VCLApplication.zip (221.4 KB)

Hi,

Thanks for testcase.

  • update DataAbstractService_Impl.pas as
function TDataAbstractService.InternalGetSchema(const aFilter: ROUTF8String; aCanAccessPrivateTables: Boolean; aDataFormat: TDAPersistFormat): ROUTF8String;
..
        tempSchema.Datasets.Delete(i);
        FreeOrDisposeOfAndNil(l_dt); <<<<<<<<<<<delete this line
...
        tempSchema.UnionDataTables.Delete(i);
        FreeOrDisposeOfAndNil(l_udt); <<<<<<<<<<<delete this line
  • launch C:\Program Files (x86)\RemObjects Software\Build\install_DA.cmd with admin rights for updating .dcu and .bpl

Logged as bugs://D19463.

bugs://D19463 was closed as fixed.