on 03-11-2015 12:17 PM
Hello All,
I am facing some issue with different crystal versions used in applications. My application(let's say X13) is using crystal 13.0.10.1385 dotnet API and another application (let's say Y85) is using crystal 8.5 dotnet API version. My application X13 has a module which is dependent on application Y85 module and exchange information between them.
As both applications use crystal, CRPE32.dll is loaded in memory once for both the applications. The issue derives from the fact that the application X13 brings the crpe32.dll (version 13.0.10.1385) located in folder “C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86” into memory. If the application X13 is not loaded into memory first then the version of crpe32.dll (i.e. 8.5.0.461) located in the application Y85 install folder will be used.
As we know that CR 13 and CR 8.5 are two entirely different API's now without any compatibility with each other. Now if my application X13 is initialized first and crpe32.dll (version 13.0.10.1385) is loaded in memory, on accessing the module dependent on application Y85, Y85 tries to make crystal calls.
It tries to call to PEOpenEngine, PEOpenPrintJob, PEGetNTables, PEGetNthTableLocation, crPEGetNthTableLogOnInfo and PEGetNDatabaseFields which executes fine but It is only the call to PEGetNthDatabaseFieldInfo that fails, with a return value of 0. Below is the sequence order of calls:
Question arises here is how to get PEGetNthDatabaseFieldInfo working when the .NET Crystal Engine has already been initialized.
I have attached a sample code demonstrating same too. It will be great if anyone can help me on this.
Crystal versions involved : 13.0.10.1385 and 8.5.0.461
Visual Studio 2012
VB.net
WIN APP
Thanks
Saurabh
Hi Saurabh,
CR 8.5 never was side-by-side compatible with any other version of CR runtime.
And as of CR 9 you no longer are licensed to be able to use crpe32 as the reporting engine. R&D can change it at anytime so absolutely no support for it in that respect either. After CR 9 crpe32 was completely rewritten and a lot of parts were removed into their own dll's. The major parts were the DB drivers were renamed and the Parameter API's were also updated and old one's are no longer recognized, or may not work the same way.
So why not simply completely drop 8.5 since it is over 12 years old now... There is no reason you need to still be supporting it. We dropped support for it a long long time ago.
Don
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
81 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.