Upgrade From 12.04 to 18.1
Currently using RB 12.04 Server and looking to upgrade to 18.1 and
wondering what kind of effort this will take.
1> I have lots of code in RAP. Also heavily use the
rsClientRecieveAutoSearchFields to "autofill" report values rather than
using the user web interface. Can I expect everything to compile and run
as it did in 12.04 ?
2> I'm assuming an 18.1 client can not communicate with a 12.04 client.
Is there an easy way for both servers to exist on the same box during a
transition? Perhaps a different URL based on the client version? There
is likely a white paper someplace I missed on upgrading that I hope
someone can point me too.
3> Any advice from users that have done this upgrade? 12.02 to 18.1
server, either in the current version of Delphi (10.2) or in an older
version Delphi 2007?
Thanks for any help and insight you can provide.
Delphi 2007 / Oracle 12c / RB Server 12.04
wondering what kind of effort this will take.
1> I have lots of code in RAP. Also heavily use the
rsClientRecieveAutoSearchFields to "autofill" report values rather than
using the user web interface. Can I expect everything to compile and run
as it did in 12.04 ?
2> I'm assuming an 18.1 client can not communicate with a 12.04 client.
Is there an easy way for both servers to exist on the same box during a
transition? Perhaps a different URL based on the client version? There
is likely a white paper someplace I missed on upgrading that I hope
someone can point me too.
3> Any advice from users that have done this upgrade? 12.02 to 18.1
server, either in the current version of Delphi (10.2) or in an older
version Delphi 2007?
Thanks for any help and insight you can provide.
Delphi 2007 / Oracle 12c / RB Server 12.04
This discussion has been closed.
Comments
1. Yes
2. For two report servers, use a unique port number. For two web tier's use
a unique URL.
3. I recommend upgrading to the latest Delphi version. Delphi has evolved a
long way since D2007. Supporting the old Delphi versions prevents us from
taking RB forward due to limitations. Some of the RB 18 features are not
available for the old Delphi versions, for example the Xlsx feature. We've
had to drop support for some of the older Delphi versions and will continue
to be forced to do so, there are just too many.
Best regards,
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Still using Delphi 2007 as our applications are not fully unicode
compliant. Would like to get RB 18.01 deployed now before we get to
Delphi 10+
Using RAD Studio Delphi 2007 Update 3 with RB Server 12.03 I installed
RB Server 18.01 and built everything, deployed servers etc. The only
thing that changed was the RB Version from 12.03 to 18.01.
Everything was working with 12.03, with 18.01 I'm getting an AV with all
zeroes as the address followed by "CheckSynchronize called from thread
$E94, which is NOT the main thread." on reports where I make Oracle
Package calls to fill temp tables from the client side
OnReceiveAutosearchParameters. Simple reports run OK under RB 18.01
Is this a common issue with RB upgrades? Any clue on where I should be
looking to resolve it? This could very well be something other than RB
but again it's the only thing that changed. Thanks for your help.
RAD Studio Delphi 2007 Update 3 / RB Server 12.03 & 18.01 / Oracle 12C
Try setting ClientReport.PreviewFormSettings.SinglePageOnly to True.
RB 14 introduced the scrollable page preview, which generates the pages in a
background thread. Perhaps there is an issue with your event-handler code
executing in a thread. When PreviewFormSettings.SinglePageOnly is True, the
report will use the old single page preview which generates the pages in the
main thread.
Best regards,
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
True solved the problem which begs a bigger question...
For some of our larger reports we use temporary tables that are filled
calling Oracle Procedures from the client OnRecieveAutoSearchParameters.
I used the preview pane to provide user feedback while the tables were
being loaded, worked great.
Is there a better/safe place to make these Oracle calls in Reportbuilder
where it wouldn't case an issue with the threading? How do other folks
handle loading temporary tables with RB 18? Any report demos that do
processing ahead of or during the report generation that you know of?
Thanks again for solving my larger problem.
Delphi 2007 RAD Studio Update 3 / RB Server 18.01 / Oracle 12C
No UI can be performed in a thread. That's a limitation of Windows API and
VCL. The Oracle calls are likely ok, but you mention 'use the preview pane
to provide user feedback while tables are loaded'.
Delphi has a TThread.Synchronize class method that can be used to execute a
method in the main thread.
Here's a simple example. I created a FillTempTables method and then call it
from the ReceiveAutoSearchFields event using TThread.Synchronize
procedure TForm1.rsClientReport1ReceiveAutoSearchFields(Sender: TObject);
begin
TThread.Synchronize(nil, FillTempTables);
end;
procedure TForm1.FillTempTables;
begin
// TODO -cMM: TForm1.FillTempTables default body inserted
end;
Best regards,
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
If so, the the UI updates would then be OK because they are coming from
the main thread ?
Thanks Nard.
(Sorry I think I hit reply the first time again... instead of posting to
the group)
The rbServer.exe is an multi-threaded application. Client requests are
processed in threads. This enables the server to handle multiple request at
the same time.
The rbClient.exe mostly executes in the main thread. As mentioned previously
the scrollable preview uses a background thread. Setting
PreviewFormSettings.SinglePageOnly to True uses the old single page preview,
which uses the main thread.
Best regards,
-
Nard Moseley
Digital Metaphors
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com