This error message appears because the P2SODBC.DLL is missing from the C:\WINNT\system32 directory. In order to successfully schedule a report from an ODBC connection you will need to verify that the P2SODBC.DLL is in C:\WINNT\system32 directory.
Ensure that no duplicates of this file exist anywhere else on the computer. Search for the file on the computer, copy it to the correct directory, delete or rename any duplicate copies of P2SODBC.DLL.
Place P2SODBC.DLL in the correct directory and restart machine.
Now try to run your application.
Hope that helps!!
Thanks for the input. I searched the file and found it in to locations. I just renamed the duplicate file that was in another directory, just in case I screwed something up. I re-booted the machine and attempted to run the report from the application, I still get the same error message.
A couple of questions first of all:
1) What database are your reports connecting to?
2) How are the reports connecting to the database, ie ODBC, direct, telepathy, etc.?
3) What version of Crystal are you using?
4) From your application how are the reports being called, ie. Print Engine API calls, OCX, RDC, etc?
This message happens because of one of 2 reasons. Either the database driver, like P2SODBC.DLL, is not being picked up by your application or the database client used to communicate with the workstation is not installed or not in the search path.
Depending on the version of Crystal you are using, the database driver will be P2?.DLL or crdb_?.dll.
If you can reply with answers to at least the first 3 I should be able to help you more.
Cool. That actually helps alot. 8.5 used the P2S?.DLL drivers to communicate. Unfortunately OLEDB is a bit vague since ODBC also uses it.
To find out, open the report in Crystal and go to Database | Convert Database or some thing like that. It will tell you which P2S file it's using. It could be either P2SODBC.DLL, P2SOLEDB.DLL or P2SSQL.DLL.
That's the one you need to make sure is installed. Drop this file, and the rest of the Crystal runtime files into the same folder as CRPE32.DLL. When CRPE32 loads it's files, unless it's in the SYSTEM32 folder, it will not look through the path.
From the machine you are getting the error message, can you make sure it can connect to the database? If it is using ODBC, go into the Windows Control Panel | Administrative Tools and open the ODBC Datasources icon. Locate the datasource and test the connection.
One last thing about how the Crystal drivers work. The P2? driver will not load if it cannot locate the database client. In the case of SQL Server it should not be a problem but if it were Oracle then you would need to make sure SQL*NET is installed. The P2? driver is dependant on the client.
The PD?.DLL are the 16 bit versions of the drivers. In the good old days before 32 bit processing, the drivers were called PDS?.DLL and PDB?.DLL.
PDS stood for Physical Database SQL so ODBC, SQL Server, Oracle, etc. PDB stood for Physical Database which were the PC based databases like Access, dBase, FoxPro, etc.
Moving into the 32 Bit world, the counterparts were named the same except instead of PD? they used P2?.
So you can ignore the PD files.