dbf2msql v0.1

OVERVIEW:

This program takes an xBase-file and produces queries to insert it into
an msql-table. It takes a number of arguments to set its behaviour:

-v 	verbose:
	Produce some status-output

-vv	more verbose:
	Also produce progres-report.

-u	uppercase:
	Translate all text in the xbase-file to uppercase

-l	lowercase:
	Translate all text in the xbase-file to lowercase

-d	database:
	Select the database to insert into. Default is 'test'

-t	table:
	Select the table to insert into. Default is 'test'

-c	create:
	If the table already exists, drop it and build a new one.
	The default is to insert all data into the named table.

-p	primary:
	Select the primary key. You have to give the exact
	field-name.

-h	host:
	Select the host where to insert into. Untested.


It does not handle memo-files (yet? :) and is maybe not as well tested as it
should have been, but it works for me (and others as I have been told).


INSTALL:

To build it, take a look at the Makefile. You might have to change a
few things.

First of all, there's the compiler you use. Then you have to tell where
your 'install' program is. I use the syntax as in Solaris /usr/sbin/install,
and I don't know if this is the one with the most standard arguments, so
please bare with me if you have to fiddle with it.

Then, tell what compiler-options you want (probably optimizing :). The next
step is important: tell where your Minerva/mSQL is installed, since this
needs include-files and libraries from there. 

Next, tell where you want the binary to be installed (directory-name).

Some operating-systems require extra libraries to be linked against, Solaris
for example needs -lsocket and -lnsl to compile this cleanly. Specify this
in EXTRALIBS.

Then your probably set to go. There are 3 more options you can change, but you
only need them if you want to do a 'make dist'. These are 'RM', 'GZIP' and
'TAR'. Of these probably the only one that _could_ give trouble is gzip,
but you probaly already have this, else you wouldn't have succeeded in
reading this document :).

COPYRIGHT:

Use this piece of software as you want, modify it to suit your needs,
but please leave my name in place ok? :)

DISCLAIMER:

I do not accept any responsibility for possible damage you get as result
of using this program.

KNOWN BUGS:

-	It doesn't handle memo-files. If somebody has specifications of these,
	please let me know and I'll see if I can add support for them.

OTHER BUGS:

None that I know of, but it's always possible they're there.

CHANGES:

dbf2msql-0.2:

-	Reorganized the code, cleaned up main(), moved building and sending
	of 'create-clause' to do_create() and moved building and sending
	of 'insert-clauses' to do_inserts.
-	Changed allocation of (char *)query in do_create() from static
	to dynamic, thus avoiding overruns.
-	Changed allocation of (char *)query, (char *)keys and (char *)vals
	in do_inserts() from static to dynamic, thus preventing overruns.
-	Fixed a nasty little bug in freeing allocated memory in
	dbf_free_record(). This was stupid, and only showed up *after*
	the code-reorganization. Don't know why I didn't notice it before.
	If you had *very* large dbases (with large fields), this could fill
	up your memory completely.
-	Added the -l option on suggestion from David Perry
	(deperry@zeus.nerosworld.com)
-	Added the -c option (dito)
-	Added the -vv option
-	Enhanced documentation (this little doc)

dbf2msql-0.1:

-	Initial release

Maarten Boekhold (boekhold@cindy.et.tudelft.nl)
