uRODataSnap_intf generated with wrong/old RODL

Hi guys,

Please review the code that is included as part of the DataSnap support. If I generate the code from the uRODataSnap.RODL, it is different than the one included on the DataSnap directory.

The problem is that code generation has changed and now the Async interfaces are included on a single file, while before they were on different so everytime I generate a RODL that has a dependency on uRODataSnap it points to i.e. uRODataSnap_intf.IAppServer_Async, which is not included on the .pas included on the installation, but that is generated with the .RODL file.

Now lets say I use the one generated by the RODL file, that one will cause a problem because uRODataSnapConnection requires three parameters
’‘CoAppServer.Create(fServerName, fMessage, fChannel);’’

But the generated file will not include a call with those three parameters.

Im right now manually changing things, but definitely needs to be reviewed.

pls specify what version of RO you are using.
I can’t reproduce any problems with latest RTM

Hi Evgeny,

First, MERRY CHRISTMAS! and happy new year in advance.

More details. The exact location of the error is this file:

uRODataSnapConnection
[dcc32 Error] uRODataSnapConnection.pas(403): E2034 Too many actual parameters

On the code:
procedure TROCustomDataSnapConnection.DoAssignProxy;
begin
if Assigned(fOnAssignProxy) then OnAssignProxy(Self, fProxy);
if not Assigned(fProxy) then fProxy := CoAppServer.Create(fServerName, fMessage, fChannel); <—
end;

This is the generated file using the uRODataSnap.RODL.

uRODataSnap_intf:

CoAppServer = class(System.TObject)
public
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IAppServer; overload;
class function Create(const aUri: TROUri): IAppServer; overload;
class function Create(const aUrl: String): IAppServer; overload;
end;

We are missing a parameter. I can patch the generated file, but it will be lost on any future re-generations.

Hope this helps.

Also, Im using Delphi Berlin 10.2, RO SDK/DA version 9.0.97.1245.

that code is generated in RO 9.1 RTM as

  CoAppServer = class(System.TObject)
  public
    class function Create(const anAppServerName: String; const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IAppServer; overload;
    class function Create(const anAppServerName: String; const aUri: TROUri; aDefaultNamespaces: String = ''): IAppServer; overload;
    class function Create(const anAppServerName: String; const aUrl: String; aDefaultNamespaces: String = ''): IAppServer; overload;
  end;