Prob: Multiuser App w/ dBASE

Prob: Multiuser App w/ dBASE

Post by Stoehr Ekachack Sukachev » Fri, 04 Aug 1995 04:00:00



Problem:

  I'm having a problem getting two Delphi-Desktop-compiled apps, running
  on different machines, to be able to see updates made to the same dBASE
  file on a Novell Network drive.

Detail:

  One app--the "Writer"--opens the dBASE file (dBF) and appends records
  to it (about 1 record per second).  I'm using the TTable object to
  access the dBF and am using the AppendRecord method to append the
  records.

  The other app--the "Reader"--opens the same dBF and uses the DBGrid
  object to display the data.  The Refresh method of the TTable object
  is called periodically to make sure that the DBGrid object is display
  the most recent data.

  When I try running these two apps on the same machine, I do
  NOT have any problems; however, when I run each one on a different
  machine, the "Reader" cannot see the newly-appended records made by the
  "Writer."  Not until the "Writer" quits and the "Reader" closes and then
  re-opens the dBF can the "Reader" see the records.

  Am I doing something wrong?  Is it even possible to have a multi-user
  dBASE app in Delphi using files from the network drive?

Any help on this matter will be greatly appreciated!

Stoehr

 
 
 

Prob: Multiuser App w/ dBASE

Post by Stoehr Ekachack Sukachev » Sat, 05 Aug 1995 04:00:00



Quote:> Problem:

>   I'm having a problem getting two Delphi-Desktop-compiled apps, running
>   on different machines, to be able to see updates made to the same dBASE
>   file on a Novell Network drive.

Here's an update on what I've found out:

  For the "DatabaseName" property of the TTable object that I used
  to open the dBASE file, I used the following value:  "\DELTEST"
  (yeah, I know that it isn't good using hardcoded path names--I've
  now stopped doing so using either aliases or dynamically setting
  the property...).

  Well, when I tried adding the network drive in the value for the
  "DatabaseName" property (i.e., "F:\DELTEST"), everything worked
  find.

Can anyone explain what's going on?  Does the BDE or something else
make assumptions when the drive isn't specified such that two apps
running on different machines won't see real-time updates done to
the same dBASE file?

-- Stoehr

 
 
 

Prob: Multiuser App w/ dBASE

Post by Cors » Sun, 13 Aug 1995 04:00:00


I have been having a similar problem with Paradox tables.  However, I get
a different error - the single user version of Delphi is not designed to
allow multi-user access to tables - Borland wants you to spend $2K on
their client-server version, naturally, to get this type of functionality
(with a SQL-server database, of course).  I know of no way around this
problem, however I'm sure there's a work-around out there.  If you (or

are'nt overlooking anything obvious, I can tell you that much.
 
 
 

Prob: Multiuser App w/ dBASE

Post by Steve Koters » Tue, 15 Aug 1995 04:00:00


: I have been having a similar problem with Paradox tables.  However, I get
: a different error - the single user version of Delphi is not designed to
: allow multi-user access to tables - Borland wants you to spend $2K on
: their client-server version, naturally, to get this type of functionality
: (with a SQL-server database, of course).  I know of no way around this
: problem, however I'm sure there's a work-around out there.  If you (or

: are'nt overlooking anything obvious, I can tell you that much.

Delphi, the development environment, is single-user in that only one
person can run Delphi at a time for each installation. However, there is
no distinctions between single- and multi-user when applied to applica-
tions created with Delphi. All Delphi applications are fully multi-user
capable -- whether created with the Desktop or the Client-Server version
of Delphi. Both versions handle local tables (dBASE, Paradox, ASCII, and
ODBC) exactly the same. Differences between the two versions of Delphi
are mainly in the area of client-server operations (i.e., access to SQL
databases from back-end systems such as InterBase, Sybase, Oracle, and
Informix).

It is in no way necessary to purchase the Client-Server version of Delphi
(or to upgrade to it from the Desktop version) to get multi-user capa-
bilities for local table types. The capabilities are built into _both_
versions and in the exact same way.

If you are having difficulties creating Delphi applications that allow
multi-user access to local tables, it is more often than not due to
adverse configurations problems or interference by other external factors.

--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/ Steve Koterski               _/   The opinions expressed here are    _/

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 
 
 

Prob: Multiuser App w/ dBASE

Post by Synatu » Sun, 10 Sep 1995 04:00:00


I read with interest your posting about Delphi mulituser.  I'm working on
a dBase based app and had been sure it would, but...

My question, ignorent I suppose but nontheless, is how do I set up
routines to let a new user (i.e. installation package) specifiy where the
database is.  Everything works fine if I set up the BDE configurations on
my machine, but when I deploy it, I can't expect my users to want to put
their data in F:\D\VAMP\DATA.

Is there anyway at all to specify alias or database names at runtime?
Everytime I try setting any property of Tdatabase or TTable classes I get
GPF's.  No problem setting up the ini file, or reading the path name from
it, just can't do anything useful with it.  I've got about a dozen tables
that should work with each other under one alias.

Any help would be appreciated.

 
 
 

Prob: Multiuser App w/ dBASE

Post by Stoehr Ekachack Sukachev » Mon, 11 Sep 1995 04:00:00


: Is there anyway at all to specify alias or database names at runtime?
: Everytime I try setting any property of Tdatabase or TTable classes I get
: GPF's.  No problem setting up the ini file, or reading the path name from
: it, just can't do anything useful with it.  I've got about a dozen tables
: that should work with each other under one alias.

I normally assign an alias or path to the "DatabaseName" property
of my TTable object during its BeforeOpen event so that (obviously)
before the table is opened, this property is properly set.

I've never had a problem with this (i.e., no GPF's).
Perhaps there is something else going on in your code?

stoEhr