I've done a little looking around and found a few different ways to do this, and I was looking less for technical help, and more for opinions before I dove into the code. The software I'm sending out doesnt get installed, its just unzipped and placed in random folders on peoples computers. I have no way of knowing what other software they have installed, like MS Office, and honestly don't want that to be a requirement.

I wanted to just include a MS access file in my distribution, and have my app connect to it and pull the info it needs. Some of the methods I've run into are.

Using ACEDAO.dll

Using atldbcli.h and atldbsch.h

using msado15.dll

using aceodbc.dll and sqlext.h

using aceodbc.dll and afxdb.h

I don't know anything about these, and all of my computers have MS Access installed on them so I'm not even really sure which ones come as a default library in windows if any of them. I'm pretty bad with my library knowledge but i'd guess that the msado15.dll is a default windows thing and wouldn't cause any of my users any heartburn installing additional software, or cause me additional heartburn having to distribute an msi or whatever.

I'm going to be doing very small simple queries, 1 row, 1 column per query, and speed is the most important thing. This dll im compiling it into gets injected into a game, and my previous method of connecting to a remote mysql database caused the game to stall while it waited for a response. As a side note if anyone has any insight on how to get past the game freezing from waiting for a database response that would be much appreciated.

ODBC is the oldest and most widely used database access method, it is supported by virtually all SQL databases. DAO and ADO are both slightly faster than ODBC but not as widely used except in Microsoft databases such as Microsoft SQL Server and MSAccess. Others might use it too, I don't know.

Is the ADO library a default windows thing, or would my users need to install MS office, or an MSI to use it?