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

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.

Related

Visio reverse engineering MS Access - missing driver

I am trying to use the "reverse engineering" feature of Visio to document an existing MS Access database.
I have done that in the past with decent results but I am having an issue at the moment.
Visio doesn’t propose me the MS Access driver - I only have these
Driver options
(Generic ODBC works but is fairly limited in terms of information retrieved).
I am trying to “install” / activate the Access driver but to no avail.
Install options
What am I doing wrong ?
This is Microsoft® Visio® Plan 2 MSO (Version 2206 Build 16.0.15330.20260) 64-bit
If you running office x64 version, then you need to install Access x64, or at the very least install the x64 bit version of the access data engine.
So, since now most office versions default to x64 bits, then you need a x64 bit driver for Access.
You can download the drivers here - they should work:
Microsoft Access Database Engine 2016 Redistributable
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Make sure you choose + install the x64 bit version if you are in fact running office/Visio x64.
Do keep in mind while Visio can pull and diagram the database, the options to create a database or forward engineer a database are long gone and removed from Visio. So changes made to that diagram and the Access schema in that diagram can't be sent back to Access, or any other database.

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

SQL Server Database Tools on a Mac

I have a DB project which relies on SQL Server Database tools. I am trying to work on it on a Mac. The rest of the project is in .NET Core so that all works well. The database project throws an error on dotnet restore
/Users/mborozdin/src/ethos/FileRepository/src/FileRepository.Database/FileRepository.Database.sqlproj(63,3): error MSB4019: The imported project "/usr/local/share/dotnet/sdk/2.1.4/Microsoft/VisualStudio/v10.0/SSDT/Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
Is there an alternative to SSDT which seems to be only available on Windows?
When you develop on the Mac,
You will put your SQL Server on the docker or Virtual Machine.
In other to connect, You need SQL Operations Studio for the Mac
Download Link
Is there an alternative to SSDT which seems to be only available on Windows?
The alternative is Azure Data Studio. As for:
SQL Database Projects extension
The SQL Database Projects extension brings project-based database development, well-known in SQL Server Data Tools (SSDT), to the cross-platform Azure Data Studio experience. From this early insiders release you can create, build, and publish a project from scratch or an existing database.
https://github.com/microsoft/azuredatastudio/issues/11105

SSIS - Microsoft Access Database Engine 2010 Redistributable

I have installed Microsoft Access Database Engine 2010 Redistributable from below link. But I do not understand What do they really mean in the highlighted point in Additional Information section from the given link.
Since SSIS package running on local machines but not on UAT and SIT Servers after installation. Any suggestion Please.
https://www.microsoft.com/en-us/download/details.aspx?id=13255
"The Office System Drivers are only supported under certain scenarios, including:
- Desktop applications which read from and write to various files formats -including Microsoft Office Access, Microsoft Office Excel and text files.
- To transfer data between supported file formats and a database repository, such as SQL Server. For example, to transfer data from an Excel workbook into SQL Server using the SQL Server Import and Export Wizard or SQL Server Integration Services (provided the SSIS jobs run in the context of a logged-on user with a valid HKEY_CURRENT_USER registry hive)."
I don't know if this is what you are looking for.
Microsoft Access Database Engine 2010 Redistributable contains a set of components that allows the user to connect to microsoft office files (such as Excel and Access) even if microsoft office is not installed or you have an older office version (i.e. office 2003).
You can benefit from these components only in 2 cases:
If you are developing an application that connect with office files (excel, access, ...) using libraries such as System.Data.Oledb (or maybe Office.Interop (not sure))
If you are using SQL Server Import and Export Wizard or SQL Server Integration Services (if Microsoft Office and Microsoft Access Database Engine 2010 Redistributable are not installed) you cannot connect to microsoft excel and access using SSIS.)
I will add just some basic overview: the Access Runtime (redistributable) is fully able to operate linking to SQL DB, Excel, etc.
But it has no design features - so one cannot alter or set up any of these links.
One must set up links using full licensed Access. The it will run fine in the runtime.
Implied within this construct is that of course the link path of the runtime machines (to the linked file) must be the same as the full license development machine. In most LAN environments that are properly constructed, and the Access development occurs on the same LAN as the Access users, this is fine because the back end server is a common location to all i.e. something like : R:\MainFolder\database
CahabaData.com

How to add new connection provider to Visual Studio?

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.

Resources