ANNOUNCE: KirbyBase 1.8

J

Jamey Cribbs

KirbyBase is a simple, plain-text, database management system written in
Python. It can be used either embedded in a python script or in a
client/server, multi-user mode. You use python code to express your
queries instead of having to use another language such as SQL.
KirbyBase is disk-based, not memory-based. Database changes are
immediately written to disk.

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
(e-mail address removed)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Staff online

Members online

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,052
Latest member
LucyCarper

Latest Threads

Top