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

1.1. What is 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:

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.

1.2. Where can I get it?

The latest GNU version of Qddb can always be obtained from:

The latest binary version of Qddb:

1.3. How much does it cost?

Qddb is freely available under the GNU General Public License.

1.4. What can I do with it?

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.

1.5. What if I need support?

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.

1.6. How can I find out more?

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:

After you have subscribed, you can send mail to: and you will receive messages from others.

1.7. How large can my database be?

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

2.1. Must I have Tcl/Tk to use Qddb?

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.

2.2. I did a 'configure' and it didn't install the Tcl/Tk stuff. What gives?

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

2.3. I can't seem to change the --with-default-date-format without inserting '"'s into my date strings!

When configuring, you need to make sure that you specify:

*without* double quotes. For example, the following is wrong: 


3. General operation of Qddb

3.1. I'm running nxqddb over NFS and it won't let me modify my data! It keeps coming up in Read-only Mode instead of Change Mode.

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.

3.2. upgraded to the latest Qddb and now nxqddb(1) won't run.

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:

  1. $ rm -rf /usr/local/qddb
  2. $ 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.

3.3. Regular expressions don't seem to work on my DEC Alpha running OSF/1. Help?

You probably used GCC to compile. Don't. Use the standard DEC C compiler. See "A Guide to Qddb" available for details.

3.4. I have a relation that gives the following message when I try to run nxqddb(1).Error while reading Schema: Cannot open schema: HashTable is locked for writing Why doesn't it work?

If your relation is shared among several people, it may also be that one of them is actually running qstall(1) at the moment.

[ Qddb Home | News | Documentation | Applications | Support | Downloads | On-line databases | Search ]

Copyright © 2018 Herrin Research, LLC All rights reserved.