When testing a 32bit VB6 app against SQLA 12.1 on a Win7 64 bit PC, it works fine. Both client and database are on the Win7 64 bit. Now testing on a clean install of MS Server 2008 R2 SP1 64bit. The database works fine but the 32bit app gives "Provider cannot be found". Search on this forum gives "SA11 + EF4 + VS2010 RC = Error" which seems similar but I've never come across machine.config before and there are loads of them on the server. Some reference ASA 12 though. We cannot install the dev. s/w to debug so I'm lost :[ |
It sounds like you either don't have a 32-bit driver installed or a 32-bit DSN defined. Not sure about MSS, but this is a SQL Anywhere forum so here's a related question for SQL Anywhere. Update: This is linked from the other question, but is probably a better starting point: Graham & Chris, Top answers. I knew it was something to do with the 32bit install but couldn't find it. Running the correct syswow64odbcad32.exe proved the 32 bit part of the SQLA install had not worked so I re-ran it and it all came good (didn't work on my fresh dev server but did on the clients' server). @Graham: Your related question was spot-on and a real eye opener. As usual, many thanks for your prompt responses. Tim PS: I should have said Windows Server 2008 R2 not MS.
(03 Apr '12, 04:39)
TimC
Replies hidden
Comment Text Removed
Ah, thanks for the clarification. I mistakenly thought you meant MS SQL Server 2008 not Windows Server 2008!
(03 Apr '12, 09:34)
Graham Hurst
Ah, you're pushing "Insider" knowledge:)
(03 Apr '12, 10:02)
Volker Barth
Replies hidden
1
I wish Microsoft's choice to use
(03 Apr '12, 10:10)
Graham Hurst
Strange how it worked a treat on Win7 64 but threw a wobbly on 2008R2. Now connected, I'm getting parameter conversion errors from VB to SQLA which hints at compatability issues. Still, they don't happen on Win7 64 so I shall perservere. This is a great forum.
(03 Apr '12, 13:10)
TimC
|
VB6 is a 32 bit application and requires 32 bit client software. The error "provider cannot be found" means that the 32 bit OLE DB driver is not found, installed, and/or registered. By default, only 64 bit software is installed on 64 bit operating systems. You simple need to modify the install and select the 32 bit client components or you can manually install the OLE DB driver using the files from your working environment (%sqlany12%bin32). For more details on the deployment, see See http://dcx.sybase.com/index.html#1201/en/dbprogramming/deploying-oledb-deploy.html*d5e50170. As an aside, the machine.config is only related to .NET. |
Watch your VB6 application for memory leaks on Windows 7/Vista/Server 2008 and newer systems. VB6 is not supported by Microsoft and we have had two customers reporting memory leaks. A process heap dump revealed that VB6 ADO was leaking connection strings on Windows 7 (and related OS). Recommendation: Move to .NET as soon as possible. |