Open Source Embedded Database Options for .Net Applications - embedded-database

I have a .Net 4.0 WPF application that requires an embedded database.
MS Access doesn't work on 64 bit Windows I'm told. And I'm having issues with SSCE:
Unable to load DLL 'sqlceme35.dll': This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)
sqlceme35.dll is installed into my application's program files directory, so I can't seem to figure out why Windows XP Pro doesn't see it.
I was wondering about other embedded database options I might use (that work on both 32 and 64 bit windows). Any suggestions?

SQLite
...and the System.Data.SQLite provider.

Related

No Access to SQL Server with Delphi FireDAC on UNIX

I have an application running under Windows connecting to a SQL Server. The application works perfectly fine under Windows.
The same application should work likewise on Linux (Ubuntu 18.04) via Delphi's cross-platform development.
Yet, I get the
.
This happened after installation of the driver via Microsoft's tutorial:
https://learn.microsoft.com/de-de/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
Does someone have any idea what's going wrong?
When I started developing my cross-platform FMX application that was supposed to work with SQL Server, I also used FireDAC in the beginning. But, when it came time to deploy my application on Linux, I ran into similar difficulties. I decided that configuring each client computer to install my application was too laborious and I switched to SDAC, which allows working directly with SQL Server not only on Windows but on Linux and macOS. Now I just need to copy my application, and it works everywhere without any additional settings. I advise you to try this option.

what's the client pc requirements for a VB.net using access database

does the client pc need to install anything for runing a VB.net application with access database ? (like microsoft office or something else ?)
Yes they do. If they have MS Access, then no further tools are required. Otherwise they will need to install AccessDatabaseEngine.exe to handle the database operations. You can download that from Microsoft.
I'm currently making a VB.net application to run with Access and have had to install AccessDatabaseEngine.exe ect.
Helpful website that I've since saved which contains all the downloads you'll need:
https://social.msdn.microsoft.com/Forums/...
When you are using ADO.NET and have selected the Assembly in the dependencies it will be part of the .NET Framework. Sometimes older Applications do need the Microsoft JET Driver copied into the windows directory. Do you have an error message?

VS2010 Connection Dialog GAC Error in Windows XP

All,
I am using the VS2010 database connection dialog that Microsoft have released (download from here). I am using this without any problems on Windows 7. However, when I install the application on Windows XP (using the 'Publish' option in VS2010) I get the following error
Using NSIS, the application installs but upon trying to launch the VS2010 dialog I get the following error
Clearly the first error is telling me what the problem is, but as I have never come across this before I am not sure what I can do to address/fix it. Could this be associated with not using the manifest correctly?
As always any help is most appreciated.
Seems that in your Windows XP is missing the library for Microsoft SQL Server Compact 3.5
You could download the bits from here

SQL Server Compact error: Unable to load DLL 'sqlceme35.dll'. The specified module could not be found

I'm developing a Windows Forms application using Visual Studio 2008 C# that uses an SQL Server Compact 3.5 database on the client. The client will most likely be 32 bit Windows XP or Windows Vista machines. I'm using a standard Windows Installer project that creates an MSI file and setup.exe to install the application on a client machine. I'm new to SQL Server Compact, so I haven't had to distribute a client database like this before now. When I run the setup.exe (on new Windows XP 32 bit with SP2 and Internet Explorer 7) it installs fine, but when I run the application I get this error:
Unable to load DLL 'sqlceme35.dll'. The specified module could not be found
I spent a few hours searching for this error already, but all I could find were issues relating to installing on 64 bit Windows and none relating to normal 32 bit that I'm using.
The install application copies the all the dependent files that it found into the specified install directory, including the System.Data.SqlServerCe.dll file (assembly version 3.5.1.0). The database file is in a directory called 'data' off the application directory, and the connection string for it is
<add name="Tickets.ieOutlet.Properties.Settings.TicketsLocalConnectionString" connectionString="Data Source=|DataDirectory|\data\TicketsLocal.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
Some questions I have:
Should the application be able to find the DLL file if it's in the same directory, that is, local to the application, or do I need to install it in the GAC? (If so, can I use the Windows Installer to install a DLL file in the GAC?)
Is there anything else I need to distribute with the application in order to use a SQL Server Compact database?
There are other DLL files also, such as MS interop for exporting data to Excel on the client. Do these need to be installed in the GAC or will locating them in the application directory suffice?
You don't need it to be in the GAC for SQL Server Compact to run, and it will pick them up from the application directory. There are several ways to deploy an SQL Server Compact project. The two main ways are:
Deploying the SQL Server Compact redistributable installer with your project, but this way is painful and also can be unistalled by the end user, or upgraded by Windows updates and breaking your application.
Including the DLL files in your application folder. Depending on the features of SQL Server Compact you are using (replication or whatever), there is a handful of DLL files to deploy in your application folder.
If you have SQL Server Compact installed on your machine, they are most likely located at "C:\Program Files\Microsoft SQL Server Compact Edition\v3.5". They can be added to the project in Visual Studio and then set their project output type to "copy always". And the main reference to System.Data.SqlServerCe that you have in your project references should have copy local set to true.
sqlceca35.dll
sqlcecompact35.dll
sqlceer35en.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll
If you have these all set, then in your installer project all you have to include is the project output of this project and you're good. In my opinion this is the only way to go. It is a simple deployment, of a couple of files and you are in control of what DLL versions your application uses.
I hope that helps.
I had a similar problem, a Visual Studio 2008 Windows application targeting 32-bit Windows XP and Windows Vista that used SQL Server Compact 3.5 SP1 - that then got this error when installed on 64-bit Windows 7:
Unable to load DLL 'sqlceme35.dll'. The specified module could not be found
I was embedding an MSI for SQL Server Compact into the installer for the application.
Following this rather confused discussion on MSDN revealed that I needed to use the 64-bit MSI for SQL Server Compact on 64-bit machines. D'oh! That is, from page Microsoft SQL Server Compact 3.5 Service Pack 1 and Synchronization Services for ADO.NET version 1.0 Service Pack 1 for Windows Desktop I needed SSCERuntime-ENU-x64.msi rather than SSCERuntime-ENU-x86.msi for 64-bit machines.
How to: Deploy a SQL Server Compact Edition Database with an Application should help, at least with your first two questions.
In general, I think you should not install anything in the GAC for a single application.
The following provide a solution to the problem and an explanation also.
Troubleshooting: Can’t load SQL Server Compact DLL
SqlCeException on application's first use of SQL Server Compact
Laxmi Narsimha Rao Oruganti 's blog
I hope this helps.

Adobe PDF x64 ifilter

Getting a weird error box when using the 64bit version of adobepdf ifilter for sql server 2005 x64 on a x64 windows server 2003.
The exact message box contents:
MessageBoxHeader: MsFTEFD.exe - Unable to locate component
MessageboxContent:
This application has failed to start because adobepdfl.dll was not found. Re-installing the application may fix the problem.
Has anyone an idea what to do here?
Re-installation of the ifilter did not solved the problem (including the steps needed to register the filter correctly to work with SQL server), Google does not pop up with any solution. Checked the application & system logs with no success.
This is not really programming related. However, I would look into whether you are running 64 bit SQL server, and whether the filter plugin is 64 or 32 bit.

Resources