How to add new connection provider to Visual Studio? - sql-server

I'm using Visual Studio 2010 for development in business intelligence (BI). In window Connection Manager, there're 9 native providers :
Microsoft Jet 4.0 OLE DB Provider
Microsoft OLE DB Provider for Analysis Services 11.0
Micorsoft OLE DB Provider for Oracle
...
The provider needed is Microsoft Office 12.0 Access Database Engine OLE DB Provider (Microsoft.ACE.OLEDB.12.0), which is not included in this list. However, this provider does exist in my computer : I've used in Excel 2016, as a Microsoft Access connection provider.
So how can I "link" / "add" this provider to VS2010 and make it recognized ?

This is likely happening because you may have installed the 64-bit version of Microsoft Access Database Engine 2010 Redistributable.
Visual Studio / BIDS is a 32-bit application, and hence cannot "see" any of the 64-bit providers, including the Microsoft Office 12.0 Access Database Engine OLE DB Provider that you installed.
To fix this,
Uninstall the 64-bit redistributable that you previously installed.
Download and install the 32-bit redistributable from here. Note the link shows both 32-bit and 64-bit versions, make sure you select the 1st one (marked below)
Now you should be able to see your list of available connection managers.

Just for informational purposes...You see the provider via Excel because it is installed within the context of Office Suite of products. It is not a provider that is available system wide or where VS and SQL Server could utilize it; to get this you have to install the distribution pointed out by #Shiva.
An Example:
Learn more about 32 versus 64 bit history.

Related

SSIS import of Excel File

I am trying to import an Excel file into SQL Server SSIS/Visual Studio
I am running a 64 bit Windows Install
Excel 2016 64 bit
Visual Studio Professional 2019
I keep getting the error :- "The requested ole db provider microsoft.ace.oledb.16.0 is not registered. If the 32-bit driver is not installed, run the package in 64-bit mode."
I have tried running both the 32 bit and 64 bit "Microsoft Access Database Engine 2010 Redistributable" separately
I have also set the Run64BitRuntime option to "True" and "False" depending on my bit version of Database Engine install but still getting the same error message.
I cannot save Excel as an older version as some posts suggest due to company standards.
Are there any other solutions?
Try using Microsoft Access Database Engine 2016

Access Database engine OLEDB in windows server 2016

I have an application that uses Microsoft ACE OLEDB 12.0 driver and hence I have installed 2007 Office System Driver: Data Connectivity Components in my system.
I also have created SSIS packages to pull data from the excel and csv files which get's inserted into the SQL tables using the Microsoft ACE OLEDB 12.0. Below is my connection string
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;
Extended Properties="Excel 8.0;HDR=YES";
I wanted to move these applications to the server environment for deployment and When I reached out to the IT for getting Office 2007 system driver to be installed, they said it's not supported in Windows server 2016 and have security vulnerabilities.
Hence I wanted to know whether we have any alternate Microsoft OLEDB provider for SSIS operation? I tried installing office 2010 however I got the error message that
Microsoft OLEDB 12.0 is not registered on my machine.
Will installing Microsoft Access Database Engine 2016 Redistributable help me out in resolving the problem. If yes what will be my connection string. Is the below one correct?
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 12.0;HDR=YES";
The office 2016 oledb is also not supported in windows server 2016. Hence what security vulnerabilities will occur when we install Office 2007 or 2016 on windows server 2016?
Any help will be highly appreeciated.
Microsoft OLEDB 12.0 is not registered on my machine.
Since you installed Access Database Engine 2010 and you received the error above, then it looks like it is a 32/64 bit problem.
Make sure you installed both redistributables 32 and 64.
If you need to install AccessDataBaseEngine x64 alongside with 32-bit installation, you need to run the installation in passive mode:
Passive mode installation steps
Open the Command Prompt by typing cmd in the Windows search box under the Start menu and selecting cmd.exe
Type the file path and file name of the 64-bit Access Database Engine 2010 install file, followed by a space and /passive (this runs the installation without showing any error messages).
Open the Registry Editor by typing regedit in the Windows search box under the Start menu and selecting regedit.exe
Delete or rename the mso.dll registry value in the following registry key:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths"
More details and screenshots are found in the link below
Reference
How to install 64-bit Microsoft Database Drivers alongside 32-bit Microsoft Office

Connecting to Oracle Database through Excel

I'm trying to connect to an Oracle Database on our server from an Excel sheet, but am having trouble understanding why.
I currently have both 32-bit and 64-bit Oracle 12c installed in different ORACLE_HOMEs and have a 32-bit installation of Excel on my 64-bit computer.
I'm trying to connect to an Oracle Database in Excel using the New Query wizard.
When I click From Oracle Database I get the following error/message.
I can continue with my current provider, but when I actually try to connect to a database I get this:
What I don't understand is why I'm getting this error when I have both 32-bit and 64-bit versions of Oracle 12c installed on my computer. Both are included on my PATH variable (32-bit first), and I also included a specific ORACLE_HOME and TNS_ADMIN to point to my 32-bit installation since my excel is 32-bit.
I really want the ability to query from the database through Excel, but this problem is confusing me to death.
EDIT
I've also just added the ODBC Driver from my Oracle home's into the ODBC Data Source Administrator Tool.
It's currently able to connect from this tool.
But when I try to connect to going through the ODBC Connection wizard, I know get this:
Any Ideas?
How did you install 32bit and 64bit Oracle Client?
Please have a look at this instruction: BadImageFormatException. This will occur when running in 64 bit mode with the 32 bit Oracle client components installed
Short version:
Your excel is 32bit and you try to use the 32bit Oracle. I assume you launch the 64bit version of "ODBC Administrator" - there might be the mismatch. Or you have a problem in your PATH regarding %ORACLE_HOME% and/or %ORACLE_HOME%\bin folder
Long version:
Your Excel is 32bit, so in general you did the right approach by putting the 32bit Client into PATH and for ORACLE_HOME, you cannot mix 32bit and 64bit assemblies in one process. Btw, when you follow the instructions above your Windows will manage this automatically.
I assume you installed the Oracle Instant Client. The default Instant Client does not include neither any ODBC driver nor Oracle Data Provider (ODP.NET, Oracle.DataAccess.Client)
ODBC
You may have 2 ODBC drivers, one from Oracle typically called like Oracle in OraClient12_home1 and one from Microsoft called Microsoft ODBC for Oracle (which should be installed by default Windows installation, however it also requires an Oracle Client).
The ODBC driver from Oracle is available for 32bit and 64bit, the Microsoft driver exits only for 32bit. You have 2 ODBC Administrators, 32bit (run c:\Windows\SysWOW64\odbcad32.exe) and 64bit (run c:\Windows\System32\odbcad32.exe). There you should see installed drivers for 32 resp. 64bit.
Oracle Data Provider
For the Data Provider you have similar situation. You have one from Microsoft (Microsoft .NET Framework Data Provider for Oracle, System.Data.OracleClient) and from Oracle (Oracle Data Provider for .NET, Oracle.DataAccess.Client, several versions). Both are available for 32bit and 64bit.
In principle it does not matter which driver/provider you use to connect to Oracle - just the architecture (i.e. 32 vs. 64 bit) has to match. Each driver/provider requires according Oracle Client installation. All drivers/providers from Microsoft have been deprecated, you should prefer the Oracle ones (as stated in the warning message)
Others
Oracle provides also the ODP.NET, Managed Driver which does not require any further Oracle Client installation and runs on both, 32bit and 64bit. However, I don't know whether you can use this in Excel.
Last but not least, you also have OLE DB provider. Again one from Microsoft (Microsoft OLE DB Provider for Oracle) and one from Oracle (Oracle Provider for OLE DB). The Microsoft provider exist only for 32bit and has been deprecated.

Cannot get crystal reports 8.5 reports to run under Windows 8 for a VB6 project

I have a rather large code base in visual basic 6. The database server is sql server 2000. For reports we are using Crystal Reports 8.5. I have been successful in installing the prerequisites including the visual basic runtime + sp6 components and everything else on windows 8 after a lot of googling. The only difference with installation of visual basic components on windows 8 in the fact that I had to uncheck installation of Data Access->Ado, RDS and Ole Db Providers. Now my crystal reports are not opening from inside my program AND the crystal reports 8.5 report designer. The error I get is "Unable to open SQL Server ". Does anyone have a solution? How do I install the ADO, RDS and OLEDB Providers manually?
See here: Installing the OLE DB Provider for SQL Server
and the middle of this page, where the ASOLEDB9.msi packages are (32 and 64 bit versions). Those packages will install the sqloledb provider.

Accessing Access 2010 (x64) .accdb database from WPF application (targetting x86)?

I have the following environment:
Windows 7 Ultimate 64-bit
MS office (with Access) 2010 64-bit
I am developing an application in VS 2010 and the application is being developed for x86 CPU.
I am using DataSet to connect to the database and I am using the NewConnection wizard to connect to the database.
I want to use an access database for data storage. (.accdb file)
I downloaded and installed the Access Database engine (64 bit).
When i use:
Microsoft.Jet.OLEDB.4.0 - I get an error that the database format is not readable!!
Microsoft.ACE.OLEDB.12.0 - I get an error that the Microsoft.ACE.OLEDB.12.0 driver is not registered on the local machine!
Please help me find a solution to the problem.
Since there is no answer, this is the solution applied:
I installed the Access Database Engine, available as a download from Microsoft and it worked.
This was the latest version available and had the appropriate driver for database access.

Resources