Frequently Asked Questions about Qddb
1. General, high-level type questions on Qddb
This section answers basic Qddb questions
2. Prerequisites, Configuration, Installation
This section answers questions on how to get Qddb up and running.
3. General operation of Qddb
This section answers basic operational questions.
1. General, high-level type questions on Qddb
Qddb is a data manipulation suite that allows you to add, modify,
and delete records. Records may contain any ASCII characters
and you can search on any fields or across fields with:
- word ranges
- numeric ranges
- date ranges
- words
- numbers
- dates
- regular expressions
You can also combine searches with intersection, union and
binary exclusion. The results of a search can be displayed in a
very flexible way. See the nxqddb(1) manual page and the
Qddb User's Guide for more details.
The latest GNU version of Qddb can always be obtained from:
ftp://ftp.qddb.org/pub/qddb/sources
The latest binary version of Qddb:
http://www.qddb.org/qddb/binaries
Qddb is freely available under the GNU General Public License.
Anything you like. Some examples are: business records, student
records, source tree management/compilation, bibliographical
databases, and genealogical databases. It is pretty flexible since
the base API is a Tcl extension. You can manipulate records
from Tcl, translate them into any format you like, use extensions
such as BLT to produce graphs and charts on the data.
We have also built several client/server applications using the
tclTCP extension. Of course, nxqddb(1) will get you started very quickly.
Official user and programmer e-mail support
for Qddb are now available on a yearly basis. You can
also negotiate special arrangements (such as phone support)
with us if you need them.
First, you should grab the distribution and read the documentation.
If you find that you want to discuss Qddb with others, there is a
mailing list available for your enjoyment. To join the mailing
list, send an e-mail message with the Subject: of ``Subscribe''
to:
qddb-users-request@hsdi.com
After you have subscribed, you can send mail to:
qddb-users@hsdi.com and you will receive messages from others.
Your database can be as large as you like, but there are certain
restrictions based on the hardware you use. nxqddb(1) can use a lot
of memory for large complex databases, so make sure you have
plenty of memory and swap space. Also, 32-bit machines typically
use 32-bit offsets for files, so you are also restricted by that (~4GB).
2. Prerequisites, Configuration, Installation
We highly recommend Tcl/Tk because of the nice generic interface we provide. Without Tcl/Tk, you
cannot design your own custom interfaces. For those of you using an ASCII terminal, there is a user
interface but it is somewhat crude in comparison to the Tcl/Tk interface.
You *must* specify --with-tk to get the Tcl/Tk stuff, or
--with-tcl to just get the Tcl stuff. If you
compiled your libtk.a with the Xpm extensions from TkPixmap, then you must also specify
--with-xpm if you specify --with-tk. Since we still have a lot of users that are perfectly happy
without the Tcl/Tk interface, we must give the option not to install it. To get the nifty new nxqddb(1)
interface, you have to configure with (at a minimum):
$ ./configure --with-tk --with-itcl2
We recommend at least:
$ ./configure --with-tk --with-itcl2 --with-blt
We actually use the following for our own development, and most Fx examples published by the
Qddb team require:
$ ./configure --with-tk --with-itcl2 --with-blt --with-tktable \
--with-tix --enable-maxmem=24576
When configuring, you need to make sure that you specify:
--with-default-date-format=%m/%d/%y
*without* double quotes. For example, the following is wrong:
--with-default-date-format="%m/%d/%y"
3. General operation of Qddb
If you aren't running a lock daemon, then you need to configure
Qddb with --disable-record-locking.
This should only be done if *nobody* on your system uses Qddb
as a multi-user database. If you disable record locking, you
shouldn'teven run multiple nxqddb(1) processes on thesame relation.
You may need to remove the old binary directory tree
(usually /usr/local/qddb/*) before installing the new version.
The format of the directories changes drastically from time
to time, so you should usually do the following before upgrading:
- $ rm -rf /usr/local/qddb
- $ make install
Another common problem is using --with-itcl instead of
--with-itcl2 for use with [incr Tcl] 2.0 or later. The Fx
source tree is different since [incr Tcl] 2.X is not backward
compatible with [incr Tcl] 1.5.
You probably used GCC to compile. Don't. Use the standard DEC C
compiler. See "A Guide to Qddb" available for details.
If your relation is shared among several people, it may also be that one of them is actually running
qstall(1) at the moment.