You can find more information on KirbyBase at: http://www.netpromi.com/kirbybase.html
You can download KirbyBase for Python at: http://www.netpromi.com/files/KirbyBase_Python_1.8.zip
The most noticeable things about this release are (1) the ability to sort the result set by multiple fields, (2) the ability to have the result set returned as a nicely formatted report, suitable for printing, and (3) the ability to do an insert or an update using a record object (thanks, Fred Pacquier, for the suggestion).
The manual has also been updated to reflect the new features.
Also, for those of you who have asked how Kirby is doing, I have a couple of new pictures of him on the website. :-)
I would like to thank everyone who has emailed me with comments, bug reports, and enhancement requests/ideas. Hearing from people who actually use KirbyBase is what makes working on it worthwhile. Please keep the emails coming!
Changes in Version 1.8:
******** IMPORTANT - Method Interface Changes **************** -Added the ability to sort the result set of a select by multiple fields and to specify whether each field should be sorted ascending or descending. This necessitated a change to the interface of the select method. I moved the position of sortField in the argument list and also changed it to be a list instead of a string. I also changed the name of sortField to sortFields. I also moved sortDesc in the arguement list and also made it a list. ****************************************************************** -Added another allowable value, 'report', to the keyword parameter, returnType in the select method. This returns the result set in a pretty print format. Along with this, added another keyword parameter called rptSettings to the select method. This is only used if rptType is 'report'. It is a 2 element list. The first element specifies the number of records to print on a page. The second element is boolean specifying whether to print a dashed line between records. -Added ability to pass field values to update and insert using an object with attributes set equal to the field names. -Fixed a bug in _getMatches. If a field of type int or float had a blank value in the table (i.e. ''), the code was attempting to convert it to it's proper type (i.e. int or float) before doing the match comparison. This would cause an exception to occur. Now, if the field is an int,float,date or datetime and it is blank, I convert it to None. This allows the numeric comparisons to work correctly for null fields. -Fixed a bug in select. If a field in the result set was equal to '', I was letting it stay that way, when I should really be converting it to None before returning the result set. -Cleaned up the internals a bit. Mainly, I tried to use functions in the operator module like lt and ge instead of hardcoding < and >= in an if statement.
Jamey Cribbs [EMAIL PROTECTED]
-- http://mail.python.org/mailman/listinfo/python-list