METALBASE 5.1
_______________________________________________________________________________

                              Please read the dox  /
                                                  '


WHAT'S NEW IN THIS RELEASE:

    o SPEED AND FLEXIBILITY
         In addition to straightaway improvements over MetalBase 5.0, you can
         now select a tradeoff between the speed of updates and the speed of
         queries... the overall result is that 5.1 is much faster than even
         5.0!

    o VARIABLE-LENGTH FIELDS
         By request, MetalBase now supports strings of signed and unsigned
         characters of any length your machine can store (on disk, not just
         in memory--we're talking really, really BIG strings here)!  No wasted
         space, no limits.  You can even get it compressed!

    o DELAYED INDEXING
         By request, you can now add records to a relation without going
         through the time-consuming process of indexing them right then and
         there.  When time permits, you can later index the records one-by-one
         or use MBDIAG to index all of them at once.  Of course, the normal
         mb_add() routine is still there too.

    o RUN-TIME STRUCTURE CHECKING
         There is no more STRUCT.C, and no requisite -DSTRUCT_1,2,3,4 flag for
         compiling the library; structure format is determined at run-time
         automatically.

    o CORRUPT-RELATION REPAIR
         MetalBase will now detect corrupt indices, aborted adds, updates and
         deletes.  The utility MBDIAG is provided to rebuild damaged indices
         and recover lost data in an inhumanly small amount of time.  <<gleam>>

    o TIME AND DATE MANIPULATION
         There are many, many more functions provided for dealing with times
         and dates, including functions to determine leap years, julian dates,
         days of the week, even phases of the moon!

    o FILE/STRING PARSING
         MetalBase now includes a standard suite of functions to provide
         buffered parsing of files by line or words.  These routines are used
         internally for parsing schema and report templates, and are made
         part of the library.  They're really great--look into 'em!

    o NEW DOCUMENTATION
         All the documentation has been rewritten and sorted into two groups--
         standard library documentation, and technical documentation.  Take
         a look: it's all in DOX/ and TECH/.  Each exported function in the
         library has its own entry, and there's lots more than just that.

    o DOCTAGS
         Included with the documentation improvements is a tool which creates
         VI-style "tags" file for quick lookups of function and error code
         documentation--just move to a function in your code with VI, hit
         ctrl-], and the documentation pops up!  Nifty, eh?

    o CLEANER ENCRYPTION CHECKING
         By request, MetalBase 5.1 now verifies the encryption keys you pass
         it, and will quickly refuse to work with a relation if the key is not
         what is expected.

    o NEW FIELD TYPE
         By request, MetalBase 5.1 supports types 'byte' and 'mbyte'--these
         are interpereted as unsigned versions of 'char' and 'mchar'.  VR
         allows you to enter/read these fields as hexidecimal numbers, and
         comparisons between T_BYTE and T_MBYTE field types do not stop at
         the first '\0'.

    o SHAREWARE
         MetalBase is now officially shareware, meaning basically that if you
         plan to keep it, you should make a contribution to the author.  See
         the file DOX/REGISTER for registration information.



HOW TO BUILD THE THING:

    o Go to the DOX directory.

    o Read "chapter.5" -- it lists various compile-time options which you may
      want to change in SRC/MBASE.H, SRC/PARSE.H and SRC/INPUT.H before
      building the library.  Dowhatchalike.

    o Go to the SRC directory.

    o Check the makefile to make sure it's going to put the headers, library
      and executables wherever you want it to.  If you're using MS-DOS, use
      makefile.dos as a starter; otherwise, use makefile.  Make sure all the
      settings are as you'd expect for your compiler.  Note that I've taken
      about all the crap I'm going to take over the makefiles; they aren't
      set up for -any- machine specifically, and will require modification
      regardless of what system you have.  If you can't figure out the
      makefiles, you won't be able to use the library either.  Not that I'm
      bitter about all this...

    o If you're using *nix.............type "MAKE install"
      If you're using Microsoft C......type "NMAKE -f makefile.dos install"
      If you're using something else...do whatever you think is best

    o It'll compile the library and executables, and put them where you said
      to.  If it doesn't compile for you, see chapter 6 in the DOX directory--
      it describes compile-time switches related to various platforms.

    o If you have any relations from MetalBase 4.0 or MetalBase 4.1a, go to
      where they are and type "MBCONV relationname".  It'll convert them to
      5.1 (and hopefully the final) format and tell you it's done (it's really
      quick, but irreversable).  MetalBase 5.0 relations are version-compatible
      with 5.1, save for phone-number fields (sorry about that--big mistake in
      judgement during the 5.0 release).



WHAT TOYS YOU GET:

    o BUILD.EXE - Compiles relations from schema files; erases all records
         in a relation.

    o MBCONV.EXE - Converts pre-5.0 relations to 5.0 and 5.1 format.  Works
         great! (less filling?)

    o MBDIAG.EXE - Breaks locks, repairs corrupt indices, recovers lost data
         and completes delayed-indexing additions.

    o REPORT.EXE - Generates reports from template files, interpereted at
         run-time.

    o VR.EXE - View Relation--one of my favorite toys.  Allows you to query
         any relation and add/update/delete records as you see fit.




-------------------------------------------------------------------------------
                                                               Richid
-------------------------------------------------------------------------------

