Board index » delphi » Paradox Table in Novell Network

Paradox Table in Novell Network

I use Delphi 4 and a Paradox table in Novell 3.12 network. It is not
possible to get access to the same table from two different workstations
at the same time.

The reason is: The program automatically creates two temporar files in
the database path: PARADOX.LCK and PDOXUSRS.LCK. These files don't have
the attribute SHARABLE. Because the files are deleted again, setting the
attribute by hand is pointless.

Any help is much appreciated.

Roland Brandegger

 

Re:Paradox Table in Novell Network


Roland, perhaps this could help you :
-------------------------------------------------------------------------------
Quote
Bernd Ua wrote:
> After a 2 day penalty for obviously posting in the wrong
> forum
> ( isn't paradox a desktop database and isn't there a forum
> called
> borland.public.delphi.database.desktop ?)

> you might want to take a look in Online Help for the global
> var "session".
> Lookup TSession's NetFileDir and PrivateDir properties!

> <<<< from Delphi Help <<<<<<
> Use NetFileDir to specify the directory that contains the
> BDE network control file, PDOXUSER.NET. This file governs
> the sharing of Paradox tables on network drives. All
> applications that share Paradox tables on a network
> directory must specify the same value for this property, and
> must have read, write, and create rights for the directory.

> Set this directory at application startup or use a TSession
> Component to do it visually.

> HTH
> Bernd
> --
> Bernd Ua - Software-Haus Brumund GmbH
> u...@nospambrumund.de
> // to reply, remove nospam from email adress :-)
> joao barcellos schrieb in Nachricht
> <36B72994.DCF14...@usa.net>...
> |Hello !
> |I've a Paradox database in a NT-server and it works fine
> when
> |only ONE client access it.
> |If more than one pc-client try access it in the same time
> it Lock the
> |database and
> |the user can't access it
> |The database is read-only then, there isn't problem if more
> than one
> |user read it.
> |Can  anyone help-me ?
> |Thanks in advance
> |Joao
> |
Roland Brandegger wrote:
> I use Delphi 4 and a Paradox table in Novell 3.12 network. It is not
> possible to get access to the same table from two different workstations
> at the same time.

> The reason is: The program automatically creates two temporar files in
> the database path: PARADOX.LCK and PDOXUSRS.LCK. These files don't have
> the attribute SHARABLE. Because the files are deleted again, setting the
> attribute by hand is pointless.

> Any help is much appreciated.

> Roland Brandegger

Re:Paradox Table in Novell Network


On Fri, 19 Feb 1999 10:57:15 +0100, Roland Brandegger

Quote
<roland.brandeg...@ubeco.com> wrote:
>I use Delphi 4 and a Paradox table in Novell 3.12 network. It is not
>possible to get access to the same table from two different workstations
>at the same time.

>The reason is: The program automatically creates two temporar files in
>the database path: PARADOX.LCK and PDOXUSRS.LCK. These files don't have
>the attribute SHARABLE. Because the files are deleted again, setting the
>attribute by hand is pointless.

Roland,

I don't think the files have to be flagged shareable to be able to use
them concurrently.  It's enough if they're opened shareable.

Could it be that your PrivateDir is pointing to the same data
directory?  Ideally, TSession.PrivateDir should be set to a temporary
unique subdirectory of the Windows temp directory for each session in
the application.

Hope this helps,

Jan

Re:Paradox Table in Novell Network


Quote
>I use Delphi 4 and a Paradox table in Novell 3.12 network. It is not
>possible to get access to the same table from two different workstations
>at the same time.

>The reason is: The program automatically creates two temporar files in
>the database path: PARADOX.LCK and PDOXUSRS.LCK.

Each BDE session must use a separate private directory that is separate from
your application directory.  The default in delphi is to establish the
privatedir in the directory your applications starts in.  use the
Session.PrivateDir property to set the private directory.

--
Brian Bushay (TeamB)
Bbus...@NMPLS.com

Re:Paradox Table in Novell Network


I should have mentioned that I am *not* using Novell - I'm just using
Windows 98 machines networked together.

-Eric Harmon

Re:Paradox Table in Novell Network


Brian,

Quote
>Each BDE session must use a separate private directory that is separate
from
>your application directory.  The default in delphi is to establish the
>privatedir in the directory your applications starts in.  use the
>Session.PrivateDir property to set the private directory.

Could you please elaborate on this a bit?  I don't explicitly set my private
directory, and I think it might be the cause of a problem I occassionally
run into in a program I'm developing.

My app uses two databases:  One is shared, and is on the network
(obviously).  The other is private, and is in the application directory.
Now, since the private directory defaults to the application directory, I
think it's interfering with the private database that I also have in the
application directory.  Oh, at one point in the app, I open a second session
on the shared database.

Now, based on your quote above, I'm wondering if I should do one of several
things:

1) Move the private database into a sudirectory underneath the application
directory, as in C:\MyApp\Data.  This will eliminate the conflict between
the private database and the PrivateDir.

2) When each session starts, create a temporary directory under the Windows
Temp directory, and use that temporary directory for the PrivateDir for that
session.  When the session closes, delete that temporary directory.  In my
case, this would mean I would have three separate PrivateDirs (one for the
shared database, one for the second session on the shared database, and one
for the private database)

3) Do both (1) and (2)

Thanks in advance for your thoughts on this.

-Eric Harmon

Re:Paradox Table in Novell Network


Quote
>1) Move the private database into a sudirectory underneath the application
>directory, as in C:\MyApp\Data.  This will eliminate the conflict between
>the private database and the PrivateDir.

>2) When each session starts, create a temporary directory under the Windows
>Temp directory, and use that temporary directory for the PrivateDir for that
>session.  When the session closes, delete that temporary directory.  In my
>case, this would mean I would have three separate PrivateDirs (one for the
>shared database, one for the second session on the shared database, and one
>for the private database)

>3) Do both (1) and (2)

I would use method one of you plan on only running one instance of your
application per machine and method 2 if there will be multiple instances on a
single machine.

--
Brian Bushay (TeamB)
Bbus...@NMPLS.com

Re:Paradox Table in Novell Network


Many thanks for the tips, the reason for the problem indeed has been the
Session.NetfileDir, which was not set to the network path. The path also
can be set in BDEAdmin.exe.

Obviously the flag SHAREABLE of the Novell network is not considered by
the BDE.

Roland Brandegger

Re:Paradox Table in Novell Network


Hello Brian:

I have a different but perhaps related question:  How much traffic can the
Borland Database Engine accommodate before weird access problems occur, such
as the inability to create PDOXUSRS.LCK files in different data directories
in Novell?  We have non-BDE Paradox DOS, 16-bit BDE and 32-bit BDE
applications co-existing on the network.  At one time, we had as many as 86
simultaneous connections to PDOXUSRS.NET.

We've since cut that down to the 20s, yet we still have inconsistent locking
problems.

In article <36cf68c1.41332574@floyd>,
  BBus...@Nmpls.com (Brian Bushay TeamB) wrote:

Quote

> >1) Move the private database into a sudirectory underneath the application
> >directory, as in C:\MyApp\Data.  This will eliminate the conflict between
> >the private database and the PrivateDir.

> >2) When each session starts, create a temporary directory under the Windows
> >Temp directory, and use that temporary directory for the PrivateDir for that
> >session.  When the session closes, delete that temporary directory.  In my
> >case, this would mean I would have three separate PrivateDirs (one for the
> >shared database, one for the second session on the shared database, and one
> >for the private database)

> >3) Do both (1) and (2)

> I would use method one of you plan on only running one instance of your
> application per machine and method 2 if there will be multiple instances on a
> single machine.

> --
> Brian Bushay (TeamB)
> Bbus...@NMPLS.com

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    

Other Threads