__attribute__ does not exist in Visual Studio. Therefore replaced wherever it appeared with a macro:
Redefines MDB_DEPRECATED to support Visual Studio
Define a Constructor MACRO so that __attribute__((constructor/destructor)) behavior is achieved in Visual Studio.
Just using generate_table_schema through mdb_print_schema deletes the purpose of a very good tool. generate_table_schemas is a rewrite of generate_table_schema but sends the data to a char* instead of FILE*. There is NO fmemopen() or similar in Visual Studio, so there is NO way to access memory through a FILE* except for first writing to the disk and then reading from the disk in memory.
I cannot suggest how to handle the case when td == 0 for the dates. The databases I work with often have just 00:00:00 in the DateTime column which is not consistent with the rest of the column either, but I have to deal with it somehow.
Leaving void* where char* is needed as a function parameter returns a compilation error in Visual Studio.
Supported modes are:
- strip (don't export)
- raw (compatibility)
- octal (export as \ooo)
Note that gmdb2 dialog where updated, but not the code. Many fixes to do
there first :/
We had to support -export-symbols-regex anways
And map file did not really support versions but only list which symbol
to export. So this is more simple.
These functions now use the __attribute__((constructor)) & destructor.
Old names were keep for compatibility
Also put __attribute__((deprecated)) in mdbtools.h for all deprecated
functions.
I'm using show/hide for unavailable properties, like there is no input
mask for datetime. But this is not optimal since the sucture of the
window changes too much. We should have a fixed number of items in the
bottom properties table. TODO.
The major new feature in Access 2007 where so called complex columns.
These can be multivalued fields, attachments, or MEMO fields with
version history. All of them are implemented using hidden helper tables,
and the column itself has type MDB_COMPLEX (0x12) which is basically a
long int used as a key.
This commit adds basic support for this complex type to libmdb.