
02-04-2003, 08:30 AM
|
|
|
How to Connect a Crystal Report to Oracle, SQL Server, Access via OLEDB
|
I have a working VB6 product which will connect one existing Crystal Report 8.5 via the crystal ocx to either an Oracle, Access or SQL Server database - depending on what our customer has.
I am porting this to use the RDC via OLEDB. I use typical code, the important part is below. If a report is authored to a SQL Server database, it will run fine in code against a SQL Server database but if we try to run it against an Access or Oracle database (with the same table structure!) it fails on the .ViewReport line with a message:
'Server has not yet been opened'
My code:
Set Report = crxApplication.OpenReport(ReportsDir & "TestReport.rpt")
For Each crxDatabaseTable In Report.Database.Tables
If DBType = "ORACLE" Then
ODBCDB = "client"
crxDatabaseTable.SetLogOnInfo ODBCDB, "", DBUID, DBPWD
crxDatabaseTable.Location = crxDatabaseTable.Name
ElseIf DBType = "SQLSERVER" Then
ODBCDB = "Northwind"
crxDatabaseTable.SetLogOnInfo SQLServerName, ODBCDB, DBUID, DBPWD
crxDatabaseTable.Location = crxDatabaseTable.Name
Else
crxDatabaseTable.SetLogOnInfo DbName, "", ACCESSUID, ACCESSPWD
crxDatabaseTable.Location = crxDatabaseTable.Name
End If
Next crxDatabaseTable
Report.Database.Verify
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Any advice on this will be much appreciated - I can't believe this newer technolgy is going to demand a different report for each database type!
|
|