I lost half day trying to connect my old VB6 app (VB6 is 32 bit only, so supports only 32 bit ODBC drivers) to an Oracle database through ODBC.It is a different question if you have the app in VB.NET, you have more choices, as the response from @Wernfried indicates.
The problem was that the Windows 64 bit server has an Oracle 11g 64 bit install in production, so only ODBC 64 bit was available. I didn't want to cause problems on that installation so my idea was to add only the essential to allow ODBC 32 bit Oracle driver to be available in the system.
NOTE: this solution is just for an specific case, the case when you need only ODBC 32-bit working on the 64-bit system. Other apps that rely on 32-bit DLLs may not work because will not find it.
NOTE: if when creating the ODBC driver at this step, appears this error:"The Setup routines for the Oracle in instantclient_11_2 ODBC driver could not be loaded due to system error code 14001: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail. (.. \ SQORAS32.DLL)."
In my office we don't have a specific package for Oracle ODBC driver, what we have is either oracle 11g or other software with which the driver is included. Now we want to create a separate package for the driver itself. Once the drive is installed we would connect our excel or any office application to the DB.
Because we cant download and run the exe files directly I need to raise a service request with our software packaging team and I need to provide the link from where they can get the package. Then they can download from there and will create a installable package for the team.
If I understand correctly you just want to confirm the download for an Oracle ODBC Driver for 64-bit Windows. This isn't a programming question but the short answer is, yes that looks correct.
In my experience ODBC installation is rarely straightforward, so worst-case, you can uninstall the driver and try a different one. For example, this link claims to be an "Instant Client" including ODBC support.
As an example from Oracle, when I am installing Oracle Server, the 32 bit ODBC Administrator, does not necessarily have an entry for Oracle as the 32 bit ODBC Driver does not exist. In order to connect, I had to install the 32 bit Oracle Client, after which I can see an ODBC entry.
So my question is, in order to connect to a 64 bit database from a 32 bit application, do I need the 32 bit database client (thin/full) or just there exist a 32 bit ODBC driver which can be installed to establish a connection.
IIRC, with Oracle you need to install the client AND the ODBC driver. The client actually handles the connection to the database while the ODBC layer translates ODBC-speak to something the client understands.
However the architecture of ODBC-Driver and Oracle Client have to match, i.e. a 32-bit ODBC driver works only with an 32-bit Oracle Client, a 64-bit ODBC driver needs the 64-bit Oracle Client. This restriction applies also for other providers like OLE DB or ODP.
It is also possible to have both 32-bit and 64-bit Oracle client (and thus both architectures of ODBC drivers) installed on the same machine. However, you have to do a few "tricks" to make them both working seamless.
I have downloaded 64-bit Oracle Instantclient 10.2 to my Windows 7 PC, and aIl works well as expected. But I now have to download 32-bit Oracle Instantclient 10.2 and ODBC driver to be used in MS Access 2016. I followed the instructions step by step as described in the following link:
Per instructions, I downloaded the instantclient-basic-nt-11.2.0.3.0.zip and instantclient-odbc-nt-11.2.0.3.0.zip files, unzip them and then modified the Path system Variable value for the folder that contains the instantclient and odbc information. Once all done, for some reason, the Oracle 32-bit driver cannot be verified in the ODBC Data Sources. My question is:
Has anyone gotten JMP 9 or 10 on Windows 7 64-bit to work with a 32-bit Oracle ODBC? I set up several Oracle ODBC data sources using the 32-bit ODBC driver administrator, found here: C:\Windows\SysWOW64\odbcad32.exe
You can't do that - the "bit-ness" if I might put it that way must match. A 32 bit application requires a 32bit ODBC driver, a 64bit app requires a 64bit driver. If you can only use 32-bit Oracle ODBC then you need to uninstall JMP, re-install it, and choose the option to install as 32bit instead of the default of 64bit. Of course you'll lose the benefits of 64bit JMP in doing that. I would recommend installing the 64bit ODBC drivers for Oracle, then you can use those with JMP9 64bit on Win7.
Also, it is OK to have both 64bit and 32bit Oracle ODBC drivers on the same system - I have that and it works. Like you I have some applications that need 32bit Oracle drivers ( they are 32 bit apps ), while JMP needs the 64bit one. It's OK to have both drivers on the system
For PLSQL Developer, I place a tnsnames.ora file in C:\Oracle11gR2_x32\product\11.2.0\client_1\NETWORK\ADMIN and then just run the program. It finds the database connection information there and allows me connect to the databases. It doesn't use DSN's set up with ODBC Administrator.
For JMP9 64bit, I place the same tnsnames.ora file in C:\Oracle11gR2_x64\product\11.2.0\client_1\NETWORK\ADMIN, then run the default ODBC Administrator, which of course is the 64bit one, and create datasources in there. JMP9 uses these DSN's and connects to the databases.
If I did need DSN's for a 32bit app, then I'd run C:\Windows\SysWOW64\odbcad32.exe and create them there and the 32bit app would see them. I did at one time have a 32bit version of JMP9 installed and this worked
In fact, I just looked on my system and I see that ORACLE_HOME is blank, it has no value, TNS_ADMIN is not present at all, and PATH has values for all the Oracle drivers I have installed, 32bit and 64bit.
Thanks for your response. How do you handle setting the PATH, ORACLE_HOME and TNS_ADMIN environment variables? Do you launch applications with a .bat file that sets these to the appropriate values?
PROBLEM
An application I use very frequently uses the Oracle 32-bit ODBC drivers to read and write to oracle databases, however, I need the 64-bit Oracle ODBC Drivers to allow Excel to query the same/other oracle tables.
This topic includes all the ODBC driver versions that have been made available for download. Each driver version includes details of the changes that were introduced and additional information of each version. You should always install the latest version available.
For Windows, you can download the ODBC driver from the Connect Driver Download Page. You can download it as a ZIP file by clicking Download next to the installation bundle, or as an EXE file by clicking Download next to the driver version. For more information about these two options, see Downloading and Installing Connect Drivers.
Driver details: This driver version is optional, but it is preferred. This driver version supports the Transport Layer Security (TLS) 1.3 security protocol, which provides enhanced security.
Driver details: This driver version is optional, but it is preferred. This driver version supports the Transport Layer Security (TLS) 1.3 security protocol, which provides enhanced security. The TLS 1.3 protocol is not enabled for SuiteAnalytics Connect servers yet. However, if you install ODBC driver version 8.10.147.0, the TLS 1.3 protocol will be automatically used as soon as it is enabled for Connect servers. This driver version allows you to set the StaticSchema and Uppercase attributes using the ODBC administrator tool. This is not the latest ODBC driver version released. For information about the latest ODBC driver released, see ODBC Driver 64-bit for Windows (8.10.158.0).
Driver details: Upgrade to this version is required. If you do not install or upgrade to this version, you may experience a delay of up to 30 seconds when you log out of your Connect session. This is not the latest ODBC driver version released. For information about the latest ODBC driver released, see ODBC Driver 64-bit for Windows (8.10.158.0).
c01484d022