About Rdbed
[Rdbed is copyright 2001 by Mark Pruett and is available under the GPL
(GNU General Public License). See www.gnu.org for more information on
the GPL.]
Rdbed is a database builder and editor designed for the Agenda
VR3. Rdbed stores data in the RDB format, a type of formatted text
file. You can use Rdbed to create data tables and edit those
tables.
Rdbed stores tables in a .rdbed subdirectory under the user's HOME
directory. If this directory doesn't exist, Rdbed will try to create
it. Files are saved with a .rdb file extension. If you create a table
called Books, then it will be saved in ${HOME}/.rdbed/Books.rdb.
Availability
You can get the source code and Agenda binary from the Rdbed
Project Page on Source Forge at
http://sourceforge.net/projects/rdbed.
The RDB File Format
Database tables are stored in RDB format. RDB files are tab-delimited
text files with special information about the table fields stored in
the first few lines.
[For more information on RDB files and RDB relational databases,
download the RDB package (a set of perl RDB programs and
documentation) at ftp://ftp.rand.org/pub/RDB-hobbs/.]
An RDB file can start with one or more optional comment lines. These
lines will always start with a "#" character in the first column.
Comments can only appear at the beginning of the file.
Following the optional comments lines is the Field Names line. This
is a tab-delimited list containing the name of each field in the
table.
Following the Field Names line is the Field Types line. For each
field name their should be a corresponding field type. RDB recognizes
to types of data: text and numeric. The field type also specifies a
field length, though this value is more a suggestion than a
restriction. The field length is used by some RDB commands as a guide
for formatting output.
Following the Field Types line are 0 or more tab-delimited data lines.
The order of the data is the same as the order of the Field Names and
Field Types lines.
Here is an example of a small RDB table:
# Books RDB table
Author Title Section ISBN
20 20 10 12N
Dickens, Charles A Christmas Carol Fiction 0553212443
Wall, Larry, et.al. Programming Perl Technical 1565921496
This table tracks books and their authors. It only contains two
records. Each field is separated by a tab character, and each line
ends with a newline character.
Creating a New Table
From the File menu, select the "New Table" option. This displays the
New Table window. Enter the name of the new table. Next, enter the
name of the first table field, followed by the field size (for text
fields, this is the largest number of characters you expect the field
to hold). If the field will only contain numbers, click the Numeric
("Num") check box. Click the "Add" button to add this field to the
Fields list. Repeat this process to add the rest of the fields in the
table.
After adding the last field, press the "Okay" button and Rdbed will
create the new table.
Opening a Table
Once you've created a new table, you'll want to add records to it.
From the File menu, select the "Open Table" option. This displays the
"Open Table" window, showing a list of existing tables. Click on a
table and press the "Okay" button. The selected table is displayed in
the main window, positioned at the first record.
Navigating a Table
You can step through the records in one of three ways. First, you can
move between records by using the "<" and ">" buttons to step to the
previous or next records. Second, you can use the Page-Up and
Page-Down buttons on the left side of the Agenda. Finally, from the
Record menu, you can select the "Previous" or "Next" options. The
Record menu also has options to move to the first or last record in
the table.
Editing Records
To edit a record, just type in the field. The record is automatically
saved and will be saved to the file permanently when you either exit
the Rdbed program or open another table.
Bugs
I believe memory is not entirely freed when changing tables, which is
really bad for largish tables, as they are kept entirely in memory.
(Check all mallocs.)
On tables large enough to display a scroll bar, the window doesn't
scroll all the way back to the top. The first field's label isn't
displayed.
The app occasionally segfaults on exit; find out why. (Fixed
3/26/2001, mlp)
TO-DO List
- On the record number indicator, make the font bold when the first or
last record is reached.
- Remember the last table viewed, and reload on start
- up (is this a
good idea?).
- Add record search capabilities.
- Only save table if data has been changed (dirty flag).
- Add previous/next buttons near record number
indicator. (completed 3/26/2001, mlp)
- Add "view only" mode. Maybe allow for view layout templates.
- Display fields longer than n width in a multiline text box.
- Need some way to determine if table is getting too large for
available memory (during initial file load), and truncate loading of
table, but don't allow truncated table to be saved.
- Set focus and selection to somewhere other than the first data
field.
- Set the menu highlight (and some other colors, like list box
selection) to a darker color.
- Undo?
- Abort changes?