GPF's when running multiple exe's against a DB


This is the problem I've been getting that's beginning to drive me up the wall.
I'm using Delphi 1.0 on WFW 3.11 with Interbase 4 for Netware. When I have two apps
running against the same alias or even different aliases pointing to different
Interbase databases (but using the Interbase driver) I get one application causing
a GPF in another.

To narrow down this problem I created a new project using only three components. A table,
datasource and grid all linked together. No code whatsoever. I tried duplicating the
executable and running them one after another but they refused to cause a GPF. Then I
made another new project doing the same thing as I had done before. This time I had

First I startup up the first exe called PGPF.EXE then I started up the second
called PGPF2.EXE. Switched to the first exe and closed it. This gives me an Application
Error stating that there is an "Exception EGPFault in module PGPF2.EXE at 0002:0E31.
General Protection fault in module PGPF2.EXE at 0002:0E31". There's an OK button but
when you click it the machine hangs. A Control-Alt-Del will get you to the blue screen
where it says that PGPF.EXE has stopped responding to the system. Hit Enter and it
goes back to windows with the second exe still running.

So I tried running PGPF2.EXE first then PGPF.EXE. Then closing PGPF2.EXE. This gives me
a GPF in PGPF.EXE at 0003:0E3F. By the way, the two executables were in different directories
so that Session.PrivateDir was pointing at two different directories.  

I did a file compare between the two. Since there was no code in either the only thing
that I saw was different was that in PGPF.EXE the uses clause was:

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, DB, DBTables, Grids, DBGrids;

In PGPF2.EXE the uses clause was:

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Grids, DBGrids, DB, DBTables;

In desperation I tried reordering the uses clause of PGPF.EXE to be the same as PGPF2.EXE.
And my problem went away! It didn't matter which way the uses clause was ordered as long
as both applications were in the same order.

So I tried doing this with the real application I was having problems with. It uses double
the number of units but I put the ones above in the same order but it still would not work
correctly with the gpf test applications. So I'm still stuck. Has anyone experienced this
problem before? I recall having this problem even when using Access and the database was
on the Netware server, so this may not be be an Interbase problem. I've also used Local
Interbase and I'm quite sure I didn't have these problems.

I tried making PGPF2.EXE use the DBDEMOS Paradox alias instead. What happens now is that
if I start PGPF2.EXE first then PGPF.EXE then close PGPF2.EXE, all is ok. But if I do
it the other way by starting PGPF.EXE first, then starting PGPF2.EXE, I get a GPF when
I try and close PGPF.EXE.

If both use the DBDEMOS alias there are no problems. So there you are. I have also
succeeded in reproducing it on another machine.

Hui Ong.