Release 1.1

This is the second non-beta release of Db::Ctree, a module to access Faircom's Ctree database from Perl 5. The 1.1 release adds a few changes to make the module compile easier on Windows and work with the Perl Develper Kit's PerlApp utility. (This utility creates self-standing executables)

I created this module because I wanted to use Perl to generate reports from data stored in a Ctree database. The bulk of the code at our site is written in C using the Faircom C library, so I didn't need to create files and resource records.

I still don't create them, but I do transaction, non-transaction and even batch changes.

I have even used Perl to access the IOPERF function to monitor the server.

This library is not mean to replace Faircom's development license. That license is still required legally (I think... I'm not a lawyer, nor play one on TV), morally and without a doubt documentation wise. If you can use this module without that documentation, that's pretty impressive.

In order to do the port, I took the function list and parameters from the quick reference list and converted the data types. I needed to remove a few functions that dealt with some file structures, but most of the routines are available. I have not tested each one, but have yet to find one that didn't work from perl.

All low level and most ISAM routines seem to work fine. Functions that need a C structure are not currently supported. I'm still trying to figure out how I want to implement them. Even though they're not supported, I have gotten some of them to work, you just use PACK to manually build a SCALER with the structure.

If you use the ISAM routines, you need to either have a C program create resource records so you can use OpenFileWithResource or open it with a parameter file. My Method access routines use the OpenFileWithResource function.

If your files have DODA information stored in them (again, by a C program), a Method is available to split a record into a hash!!

As examples, I've included the following utilities that I use all the time (They'll probably need some modifications for other sites.)

        ctdump - dumps a table (splits those with DODAs)
        ctload - loads a table with data in the ctdump output format
        ctmod  - allows SUBST changes to a table
        ctcount- counts records based on keys

Install Instructions:

     This module should build similar to most Perl extensions...
        NOTE: If perl was not built on this system, you may have problems.
              The perl installer stores info about the installation.
              If you copy the binary to a new system, the previous assumptions
              may not be true!!!  Build a new perl on each system...
              it's not hard.

              Step 1.  Edit Makefile.PL and put in your Ctree library path
              Step 1.  perl Makefile.PL   # builds makefile
              Step 2.  make               # builds module 
              Step 3.  make test          # tests module
              Step 4.  make install       # installs module for use
              Step 5.  make clean         # clean up directory
 
        Windows Note
             I HAVE gotten this version to build with Perl 5.6! ( Both the
             source distribution and ActivePerl binaries!)  The only change
             I needed to make was to remove the following from the CCLFLAGS
             line in Makefile ( after step 1 )
                    -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS

             For those without compilers, I've created a ZIP with all the 
             files in the tree. Unzip WIN-SITE.ZIP and move the tree to your
             Perl Site directory.

If you give this module a shot, please drop me an email so I can let you know of new versions or just get a warm fuzzy!

Robert Eden
CommTech Corporation
rmeden@yahoo.com (comments and suggestions always welcome!)

# Copyright 1998,2000 Robert Eden
# All rights reserved.
#
# Automatic licensing for this software is available. This software # can be copied and used under the terms of the GNU Public License, # version 1 or (at your option) any later version, or under the # terms of the Artistic license. Both of these can be found with # the Perl distribution, which this software is intended to augment.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.