home *** CD-ROM | disk | FTP | other *** search
- ___ _____ _____
- | | | | | ) / / /
- |`'| _ -|- _ || | '_ _ .-. _ / / /
- | | ( ) | ( \ `| | ) ( \ `-. ( ) `---. / /
- | -'--`-- - `-' \/ ---' - - `-`- --'-- / <> / /
- ___________________________/\_____________________`.__/_____/____/_____________
-
- Please read the dox /
- '
-
-
- WHAT'S NEW IN THIS RELEASE:
-
- o SPEED
- MetalBase 5.0 destroys even 4.1a speed-wise; queries are the same
- speed, but adds/updates/deletes are always at least twice as fast, and
- often over three times as fast! Internal caching of index pointers
- just makes the whole world turn 'round better...
-
- o CONVERSION
- The utility MBCONV will convert 4.0 and 4.1a relations to 5.0 format.
- It is absolutely perfectly safe, but requires that you have enough
- free space to essentially make a copy of the relation.
-
- o LOCKING
- Previously, unless you compiled with -DUNIX_LOCKS (and had a *nix
- machine), bad things would happen if a program shut down while
- something was being changed. Now, since all indices are written at
- once (caching is so nice), chances of corruption are much smaller; and
- if a process does shut down with a system-placed lock in place, the
- next process will detect the condition and remove the lock, and
- decrement the number of users. A request queue has also been built
- in, so that processes will always get equal timeshares.
-
- o CREATE ON-THE-FLY
- You can now design and create a relation at run-time:
- rel = mb_new();
- mb_addfield (rel, "Customer's last name", T_CHAR, 15);
- mb_addfield (rel, "Customer's first name", T_CHAR, 10);
- mb_addfield (rel, "Customer's number", T_SERIAL, 40);
- mb_addindex (rel, "ix_name", 1, "0,1");
- mb_addindex (rel, "ix_number", 1, "2");
- mb_create (rel, "/usr/joe/simple.rel", 0);
- Check out the code for BUILD and MBCONV; they both use it.
-
- o SIMPLE PHONE NUMBERS
- The schema type "phone" (C typedef == "mb_phone") has been added to
- 5.0 to make handling of phone numbers easier; phone types accept area
- codes (of course), and extensions up to x99999. The routines
- scn_phone() and fmt_phone() are included for quick handling of phone
- numbers, just as scn_ and fmt_ are provided for date and time!
-
- o ENCRYPTION
- Encryption is now working for everyone, even MS-DOS users. Be
- careful, though--I'm haphazard enough with encryption that, for
- example, a bad encryption key passed to VR under DOS will usually
- make you reboot your machine; under *nix it'll usually cause a seg
- violation. Now THAT's encryption. :)
-
- o DOCUMENTATION
- The documentation, though still not perfect, is much more up to date
- than it was for the 4.0 release. Included here are:
-
- dox/mbase.dox -- General documentation (the important stuff)
-
- dox/author.dox -- Information on where the hell I can be reached
- dox/build.dox -- Information on schema and their compiler, build
- dox/crypt.dox -- Information on MetalBase's encryption technique
- dox/flow.dox -- Pseudocode for MetalBase's AVL-tree algorithms
- dox/format.dox -- Character-by-character format for relations
- dox/lock.dox -- Information on MetalBase's locking algorithms
- dox/struct.dox -- Information on C structure interface
- dox/report.dox -- Incomplete documentation on the report writer
- dox/trouble.dox -- Troubleshooting ideas (not too many--sorry)
-
- o NO DAMNED DEBUGGING TRAILS
- If you got this release hoping I'd leave some debugging trails in the
- code again, BZZZZZT! Sorry, but I'm only allowed to fuck up like that
- once a year. I really, really feel stupid about that...
-
-
-
-
- HOW TO BUILD THE STUPID THING:
-
- o Go to the SRC directory.
-
- o If you're using *nix.............type "MAKE"
- If you're using Microsoft C......type "NMAKE -f makefile.dos"
- If you're using something else...pick either makefile and modify it.
-
- o It'll compile and run STRUCT (or STRUCT.EXE), which will tell you that
- you're either screwed, or what to change in the makefile to make the
- library appropriately for your compiler. If you're screwed, send me
- mail (see dox/author.dox). If you're not, do as it says.
-
- o Check the makefile to make sure it's going to put the headers, library
- and executables wherever you want it to.
-
- o Type "MAKE INSTALL" (or "NMAKE -f makefile.dos INSTALL" for Microsoft C).
-
- o It'll compile the library and executables, and put them where you said
- to.
-
- 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.0 (and hopefully the final) format and tell you it's done (it's really
- quick, but IRREVERSABLE).
-
-
-
-
- WHAT TOYS YOU GET:
-
- o BLAST.EXE - Removes locks accidentally left around on a relation; sets
- the internal number-of-users-on-this-relation to zero.
-
- o BUILD.EXE - Compiles relations from schema files; erases all records
- in a relation.
-
- o FORM.EXE - Builds header files from data-entry templates; the DE
- interface is really, really easy to program. It's not perfect, but
- it's nice.
-
- o MBCONV.EXE - Converts pre-5.0 relations to 5.0 format. Works great!
-
- o REPORT.EXE - Generates reports from template files, interpereted at
- run-time.
-
- o VR.EXE - View Relation--one of my favorite toys. 4.0 users, NON-VI
- emulation is now the default; it's much, MUCH easier to add and change
- records. The basics of the new DE keys are:
- CTRL-A, CTRL-return - Accept a transaction
- CTRL-Q, CTRL-C - Abort a transaction
- CTRL-U, - Undo a change within a field
- Arrows, End, Home - As expected
-
-
-
-
- HOW TO PLAY WITH THE STUPID THING:
-
- I've included two programs with this; SAMPLE and BENCH. BENCH is just a
- benchmark utility (see sample/readme), but SAMPLE is meant to be example
- code, for hooking up the (suggested) data-entry interface, for adding/
- deleting/changing records, etc.
-
- Go to the directory SAMPLE and pick-n-edit a makefile. Note that you
- don't need -DSTRUCT_ in these; that's just for building the library. But
- you WILL need -DNEED_USHORT if your compiler doesn't contain ushort, etc.
-
-
-
-
- -------------------------------------------------------------------------------
- Richid
- -------------------------------------------------------------------------------
-
-