amateur programmer
amateur programmer

Reputation: 331

Crystal report: failed to open connection

My database is a remote Mysql database, I'm able to access the crystal reports of my application through various PC's but there is a problem with one PC, Even though I installed mysql connector and created a connection with my database which was successful using ODBC. But while I load the report it displays a message "Failed to open connection" enter image description here

I have used the following code for the manual connection:

cI.ServerName = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=x.x.x.x;Port=3306;Option=3;";
            cI.DatabaseName = "dbName";
            cI.UserID = "username";
            cI.Password = "pass";

            foreach (IConnectionInfo info in report.DataSourceConnections)
            {
                info.SetConnection(cI.ServerName, cI.DatabaseName, cI.UserID, cI.Password);
            }

            foreach (ReportDocument sub in report.Subreports)
            {
                foreach (IConnectionInfo info in sub.DataSourceConnections)
                {
                    info.SetConnection(cI.ServerName, cI.DatabaseName, cI.UserID, cI.Password);
                }
            }

I get this exception:

    System.Runtime.InteropServices.COMException (0x800002F4): Failed to open the connection.
Failed to open the connection.
temp_32398d30-5e82-45f2-a356-0abdad3ba4c5 5168_1588_{1AF659C8-D14D-479F-B268-51AD72B9420A}.rpt
   at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.SetTableLocation(ISCRTable CurTable, ISCRTable NewTable)
   at CrystalDecisions.CrystalReports.Engine.Table.set_Location(String value)
   at School.UserInterface.StudentApp.PrintStudentInformation.connect(ReportDocument report)
   at School.UserInterface.StudentApp.PrintStudentInformation.PrintStudentInformation_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Upvotes: 2

Views: 6601

Answers (2)

Nagesh Hugar
Nagesh Hugar

Reputation: 43

I was having the same problem, finally after 2 days of research i was able to resolve the issue by adding the below code

reportDoc.SetDatabaseLogon(userId, password, serverName, database, true);
reportDoc.VerifyDatabase();
reportDoc.Refresh();

Upvotes: 0

amateur programmer
amateur programmer

Reputation: 331

After days of struggle, I managed to solve the problem turns out that I had to install MySQL ODBC 32Bit version on the PC which was having this problem, even though that PC already had MySQL ODBC installed but it was 64 bit version. So, If anyone is facing a similar problem then I suggest that you should install both versions of MySQL ODBC if your PC is 64 bit PC.

Upvotes: 1

Related Questions