Install the 3.5 ODBC standard Netezza 3.1.2 ODBC driver on Windows for the PowerCenter Client to fetch the metadata and 3.0 standard Netezza 3.1.2 ODBC driver 1. Just realize that you can launch the ODBC (Data Sources) dialog under Control Panel > Administrative Tools by running the 'odbcad32.exe' file in either the C: Windows system32 folder (this is the 64 bit version of the dialog to build 64 bit drivers), or in the C: Windows SysWow64 folder (this is the 32 bit/x86 version of the dialog to build. Details Netezza's ODBC driver is not publicly available. Therefore, you need to contact Netezza's support to get a copy of their ODBC driver. We provide a plugin for Netezza, which is different than the ODBC driver.
Below are four Netezza drivers that are available for Netezza 6.0.8. I installed the second one on Windows Server 2008, and it placed it into the system32 folder (64 bit folder). However, when I set up the System tab ODBC drivers, and used the same configuration and credentials that I use on Windows XP, the connection test failed.
Do I need to do something special on Windows Server to get the Netezza driver working? Or perhaps I installed the incorrect driver? Does anyone know the difference between these?
MacGyverMacGyver1 Answer
[Not really an answer as I'm just stating the obvious but I don't have enough rep to comment.]
The four driver files are the ODBC driver, the JDBC driver, and the 32 and 64-bit OLEDB drivers. The ODBC driver is of course the correct one but there's a small check box in one of the installer dialogs which allows you to choose 32-bit and/or 64-bit. Did you select the correct one?
I've just tried this on Windows Server 2012 and Windows 7 and both work exactly the same for me without any extra steps. The driver I have is called nsqlodbc.dll
, version 7.0.0.27274
, in C:WindowsSystem32
(and I also have a 32-bit version in C:WindowsSysWOW64
). I can connect from both the 32-bit and 64-bit ODBC Data Source Administrator tools although I got my password wrong several times so that's certainly worth checking.
Have you also checked that the advanced options are the same, SSL for instance?
Possibly there's a security setting on your Server box that's preventing the connection but on 2012 Server there didn't appear to be anything by default.
Not the answer you're looking for? Browse other questions tagged odbcwindows-servernetezza or ask your own question.
Why can't .NET connect to my Netezza box via the installed {NetezzaSQL} driver? 64bit applications also cannot connect via this ODBC connection. Why would that be? I've built both user and system Netezza ODBC connections in Control Panel, and both work fine when I click 'Test Connection'? I see the value in the registry, but when I traverse the registry drivers, .NET does not see 'NetezzaSQL'. According to Netezza, they don't have a 64 bit ODBC driver. The driver they provide should work for 32 and 64 bit applications. Could this be a permissions issue perhaps with Windows 7?
Open in new tab to see Registry Settings for ODBC and zoom in:
Apparently, the driver name goes inside of the curly brackets. When I get a list of drivers programmatically, I don't see the driver. How do I add to this list in the Windows user interface? I do however, see the installed Netezza driver under the Control Panel > Administrative Tools > ODBC Drivers.
Here is some code that verifies what I am explaining:
Here is the connection error I get from Microsoft Access 2007 from the Windows 7 box when I use the user ODBC connection. The system one was not visible.
Error: 'ODBC--call failed. [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application (#0)'
1 Answer
Microsoft never renamed their 'system32' folder, so system32 really has all of the 64 bit drivers. And SysWow64 folder has all of the 32 bit drivers. By default, a .NET project created in Visual Studio 2010 will have a 'Target Platform' of x86. I just changed it to x64 and my connection worked to get my 64 bit NetezzaSQL driver working for .NET.
Just realize that you can launch the ODBC (Data Sources) dialog under Control Panel > Administrative Tools by running the 'odbcad32.exe' file in either the C:Windowssystem32 folder (this is the 64 bit version of the dialog to build 64 bit drivers), or in the C:WindowsSysWow64 folder (this is the 32 bit/x86 version of the dialog to build 32 bit drivers). Yes, the folders are reversed because Microsoft is weird that way.
Furthermore, there are two different folders in the Registry that get built. Turns out that the list above (in my black screen shot) comes from the ComputerHKEY_LOCAL_MACHINESOFTWAREWow6432NodeODBC list because those are 32 bit drivers. The dll I installed, 'nzodbcsetup.exe', apparently installed as a 64 bit driver. I am not exactly sure how to install this as a 32 bit driver on 64 bit windows, so that's why I changed the 'Target Platform' in my .NET project from the default x86 to x64. There has to be a way to install it as a 32 bit driver as well because when I installed this on a 32 bit Windows XP box, the driver worked fine.
What's weird is that Netezza's OLE drivers are separated. They have a 32 bit and a 64 bit dll exe file (for version 6.0.3). 'nzoledbsetup.exe' (~82MB x86) and 'nzoledbsetup64.exe' (~102MB x64). But the ODBC just has one, which is apparently both. I tried manually building a 32 bit driver in the SysWOW6432Node (under run > regedit) and pointed to the Driver file and Setup file (in the system32 folder, but I got an error. Please comment is there a way in Windows to automatically install as 32 bit, not 64.
MacGyverMacGyver