Dataset Library for C?

I am looking for an opensource dataset library for C. Something equivalent to ADO.Net.

Specifically, I am looking for the following features:

  1. Create a Dataset from a file (XML or CSV).
  2. Create a Dataset from a select query using an ODBC connection.
  3. Load a created Dataset into a database table using an ODBC connection.
  4. (Optional) Compare two datasets and report differences (an "expected vs. actual" comparison, which reports missing fields, missing records, mismatched field values etc.).

So far, I have not been able to find any open source project that provides such functionality.

I am thinking of developing something of my own by using SQLite's in-memory databases at the core, but would prefer to use an existing solution if available.

Do you know of any opensource projects providing some or all of the desired functionality? Any pointers would be appreciated.

I'd start with unixODBC. You might start with their text file drivers, and later write a driver for zip files of CSV or XML, where you can scan files using wildcards against internal file and dir names with wildcards and extract files to stdout on a popen().