mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-05-08 00:07:50 +08:00
patches from Karl and Carl
This commit is contained in:
parent
a1514812cf
commit
cf19a9f85f
30
README
30
README
@ -1,25 +1,31 @@
|
|||||||
This is mdbtools version 0.002
|
This is mdbtools version 0.01
|
||||||
|
|
||||||
This software is very, very pre-pre-pre-alpha (did I make my point?), so
|
This software is very pre-alpha, so don't expect to much unless you know C and
|
||||||
unless you know C and probably a little something about databases and reverse
|
probably a little something about databases and reverse engineering file
|
||||||
engineering file formats, you're welcome to try it out but don't expect much if anything to work.
|
formats, you're welcome to try it out but don't expect much if anything to work.
|
||||||
|
|
||||||
For the rest of you, read the HACKERS file for a description of where the code
|
For the rest of you, read the HACKERS file for a description of where the code
|
||||||
stands and what has been gleened of the file format.
|
stands and what has been gleened of the file format.
|
||||||
|
|
||||||
The initial goal of these tools is to be able to extract data structures and
|
The initial goal of these tools is to be able to extract data structures and
|
||||||
data from mdb files. This goal may of course expand over time as the file
|
data from mdb files. This goal will of course expand over time as the file
|
||||||
format becomes more well understood (if it ever does).
|
format becomes more well understood. Also in the plans is a Gtk+ browser for
|
||||||
|
MDB files and a ODBC/SQL frontend.
|
||||||
|
|
||||||
To install type 'make' in the src directory and hope it works :-)
|
To install type 'make' in the src directory and hope it works :-)
|
||||||
|
|
||||||
This will build three executables:
|
This will build some useful utilities:
|
||||||
|
|
||||||
mdb-dump -- a simple hex dump utility that I've been using to look at mdb files
|
mdb-dump -- simple hex dump utility that I've been using to look at mdb files
|
||||||
prcat -- print the catalog table from an mdb file,
|
mdb-schema -- prints DDL for the specified table
|
||||||
prkkd -- prints some info about design view data given the offset to it.
|
mdb-export -- export table to CSV format
|
||||||
prtable -- prints some info about a table definition.
|
|
||||||
prdata -- prints a dump of the data given a table name.
|
And some utilities useful for debugging:
|
||||||
|
|
||||||
|
prcat -- prints the catalog table from an mdb file,
|
||||||
|
prkkd -- dump of information about design view data given the offset to it.
|
||||||
|
prtable -- dump of a table definition.
|
||||||
|
prdata -- dump of the data given a table name.
|
||||||
|
|
||||||
|
|
||||||
Check out http://mdbtools.sourceforge.net for CVS, mailing list and similar.
|
Check out http://mdbtools.sourceforge.net for CVS, mailing list and similar.
|
||||||
|
13
TODO
13
TODO
@ -1,11 +1,12 @@
|
|||||||
Things to Do
|
Things to Do
|
||||||
------------
|
------------
|
||||||
|
|
||||||
. Implement code for reading data rows
|
. Complete the list of datatypes
|
||||||
. Complete list of datatypes
|
. Figure out how to properly determine fixed or variable length columns
|
||||||
. Figure out how to properly determine fixed of variable length columns
|
|
||||||
. Figure out how NULLs are stored in data rows
|
. Figure out how NULLs are stored in data rows
|
||||||
. Figure out what happens for varchar columns > 256
|
. Figure out what happens for varchar columns starting at > 256
|
||||||
. Write schema-export utility supporting different backend databases
|
. Modify mdb-schema utility support different backend databases
|
||||||
. Write data-export utility supporting different backend databases
|
. Modify mdb-export to handle different delimiters/options
|
||||||
. Get autoconf working
|
. Get autoconf working
|
||||||
|
. Check out text file unixODBC driver to see if it can be adapted to use
|
||||||
|
libmdb (it already has a SQL parser).
|
||||||
|
@ -49,11 +49,17 @@ enum {
|
|||||||
};
|
};
|
||||||
enum {
|
enum {
|
||||||
MDB_BOOL = 0x01,
|
MDB_BOOL = 0x01,
|
||||||
|
MDB_BYTE = 0x02,
|
||||||
MDB_INT = 0x03,
|
MDB_INT = 0x03,
|
||||||
MDB_LONGINT = 0x04,
|
MDB_LONGINT = 0x04,
|
||||||
|
MDB_MONEY = 0x05,
|
||||||
|
MDB_FLOAT = 0x06,
|
||||||
|
MDB_DOUBLE = 0x07,
|
||||||
MDB_SDATETIME = 0x08,
|
MDB_SDATETIME = 0x08,
|
||||||
MDB_TEXT = 0x0a,
|
MDB_TEXT = 0x0a,
|
||||||
MDB_HYPERLINK = 0x0c
|
MDB_OLE = 0x0b,
|
||||||
|
MDB_MEMO = 0x0c,
|
||||||
|
MDB_REPID = 0x0f
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -134,6 +140,6 @@ extern char *mdb_col_to_string(MdbHandle *mdb, int start, int datatype, int size
|
|||||||
|
|
||||||
|
|
||||||
/* dump.c */
|
/* dump.c */
|
||||||
void buffer_dump(const char* buf, int start, int end);
|
void buffer_dump(const unsigned char* buf, int start, int end);
|
||||||
|
|
||||||
#endif /* _mdbtools_h_ */
|
#endif /* _mdbtools_h_ */
|
||||||
|
@ -28,21 +28,24 @@ char *mdb_get_coltype_string(int col_type)
|
|||||||
** its own mapping.
|
** its own mapping.
|
||||||
*/
|
*/
|
||||||
static char *type_name[] = {"Unknown 0x00",
|
static char *type_name[] = {"Unknown 0x00",
|
||||||
"Unknown 0x01",
|
"Boolean",
|
||||||
"Unknown 0x02",
|
"Byte",
|
||||||
"Integer",
|
"Integer",
|
||||||
"Long Integer",
|
"Long Integer",
|
||||||
"Unknown 0x05",
|
"Currency",
|
||||||
"Unknown 0x06",
|
"Single",
|
||||||
"Unknown 0x07",
|
"Double",
|
||||||
"DateTime (Short)",
|
"DateTime (Short)",
|
||||||
"Unknown 0x09",
|
"Unknown 0x09",
|
||||||
"Varchar",
|
"Text",
|
||||||
"Unknown 0x0b"
|
"OLE",
|
||||||
"Hyperlink"
|
"Memo/Hyperlink",
|
||||||
|
"Unknown 0x0d",
|
||||||
|
"Unknown 0x0e",
|
||||||
|
"Replication ID"
|
||||||
};
|
};
|
||||||
|
|
||||||
if (col_type > 11) {
|
if (col_type > 0x0f) {
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
return type_name[col_type];
|
return type_name[col_type];
|
||||||
|
Loading…
Reference in New Issue
Block a user