cancel
Showing results for 
Search instead for 
Did you mean: 

Verify Database not working with .NET Objects in CRforVS Community 2022 and Windows 11

talbot_sk
Explorer
0 Kudos
560

Hi,

I installed CRforVS 64 bit as administrator using this exe CRforVS6413SP34_0-80007712.EXE. I didn't install any runtime:

We use x64 configuration to build our project.

I have:

Microsoft Visual Studio Community 2022

Version 17.7.4

VisualStudio.17.Release/17.7.4+34031.279

Microsoft .NET Framework

Version 4.8.09032

with latest updates.

Windows 11 Pro 22H2 with latest updates

As you can see in the title, we do not use DB as the datasource for our reports. We use .NET Objects connection.

When I open rpt file in VS and I click "Verify database" in Field Explorer then the window "ADO.NET (XML)" is opened and database (.NET Objects connection) is not verified:

When I click "Dokončiť" (Finish) it displays "Logon failed. Detail: crdb_adoplus":

What is the source of this unwanted behavior?
Thank you for the answer.

B.

Accepted Solutions (1)

Accepted Solutions (1)

talbot_sk
Explorer
0 Kudos

What do you mean by "Client"? What is it?

The problem is that CRforVS64 can't read 32bit data source from the old RPT file even when I switch target in VS from 64bit to 32bit.
Therefore I had to install VS2019 Community back, installed CRforVS(32), build our 64bit application as 32bit and after that "Verify Database" worked as it should. After database verification I can switch back to 64bit target and work with RPT file further.

I think SAP should create some mechanism which will allow 64bit CRforVS to import 32bit data source from an old reports. Otherwise you will start loosing frustrated customers which have a tons of already designed old reports. If they should rewrite old reports, may be they will choose another, newer reporting technology.

My current configuration is:

and

Answers (6)

Answers (6)

talbot_sk
Explorer
0 Kudos

Hi Don, what does it mean "client"?
As I see, 64 bit CRforVS with 64 bit VS2022 is unable to read old 32 bit data source saved in RPT even when platform is switched to 32 bit. I think you should create some migration or import tool let the customers can use and edit their old reports.

As the workaround for this issue I installed old VS Community 2019, I build our project there for 32 bit platform, verifyed DB in the designer in VS, switch platform back to 64 bit and continue to work with rpt file further.
But as the time will flow the support for VS2019 will finish once.

DonWilliams
Active Contributor
0 Kudos

When you set location in Crystal Reports Designer to a new data source CR compares the old Data source ( saved in the RPT file) to the new Data source. If the field types do no match or CR can't map them a Mapping UI will pop up and prompts you to manually map the fields.

At runtime the same thing happens but if CR runtime can't match the field types the engine will delete any fields it can't match thus causing the report to fail with various errors.

It could be the platform you are using, possibly.

If your project is compiled for X64 it could be VS doesn't have a 64 bit client to use.

Try switching to X86 and see if that works.

If it does work you'll have to search MS's site for a 64 bit version of the Client you are using in VS.

As for when this changed you can download each patch and uninstall old and install new to find when this changed.

You can get each version here:

https://origin.softwaredownloads.sap.com/public/site/index.html

Note that all SP's are not supported on Windows 11 or VS 2022 so you will need to go back to previous OS and VS to test.

talbot_sk
Explorer
0 Kudos

Hi Don, I do not understand to your solution. What do you mean by the "CR doesn't like it when you change the data structure from the original report design"? We used "Verify Database" in the CRforVS in Designer mode many times. Why it is not working anymore? Something changed in CR?
If we will change "Class Name" (C# class) to "File Path" (XML) or to .NET DLL we will lost many and many connections of report fields to properties of our C# classes in tenths of already designed reports. It worked in the past and it will not work anymore?

CR already "liked" the change of the data structure from old one to the new one in the past. Why isn't this change available in present?
Can you tell me the version of latest CRforVS 2022 where this change is still available?

Thank you.

DonWilliams
Active Contributor
0 Kudos

The issue is CR doesn't like it when you change the data structure from the original report design. It keeps a copy of the structure in the RPT file.

So the problem is until the database is built CR can't connect to anything because the structure doesn't exist..

Two ways to get around this:

1. convert your data connection to a dll

2. load the data into a DataSet and export your data to a XML file then set the connection to the XML file to verify the report.

System.Data.DataSet ds = new System.Data.DataSet();
System.Data.DataSet dsSub = new System.Data.DataSet();

ds.WriteXml(@"c:\test\ras_test.xml");
ds.WriteXmlSchema(@"c:\test\ras_test.xsd");

rpt.SetDataSource(ds);

In CR Designer you can now set your data source to a Class Name or to the XML file.

talbot_sk
Explorer
0 Kudos

We use C# classes and we use CrystalDecisions.CrystalReports.Engine.Table's "public virtual void SetDataSource(IEnumerable enumerable)" function to set datasource in runtime. But our problem is to verify database in design time, when no datasource with data is connected to the report. We specified datasource in Database Expert as the ADO.NET (XML) C# class. I do not need to access data in design time. I just want to "verify database" - renew the current structure of edited class added/removed/modified properties. Therefore there is no need to run application and populate data in runtime.

We use 64 bit VS, we build 64 target and use 64 bit CRforVS. I tryed to install 32 bit runtime of CR but it didn't helped.

What's next?

DonWilliams
Active Contributor
0 Kudos

What is your Data source and what API's are you using to set the data source?

Note: To access the data the application needs to run, the Embedded Report Designer in VS will not access your data because it's not built until you run the app.

See my Parameter test app to see if that helps or works:

https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

how-to-parameters-in-crystal-reports-for-visual-studio-net

PS - you do need to install the 32 bit runtime when installing into VS, it's the last step when installing, it prompts to install the 32 bit runtime.