Board index » delphi » BDE 32-bit & 16-bit

BDE 32-bit & 16-bit

Hi all!
I stumbled across the following problem.
I'm writting a program on Delphi 5 with a use of BDE 5.11.
The program inputs information into a large database at specific times.
Data, however is being processed by programs written earlier on Delphi 1
(16-bit),  by a third party.
The problem is that when a table is launched in a 32-bit program, the 16-bit
programs can not read the information from the database. More precisly,
reads only the information which was in the database at the moment of
launching the 32-bit program.
As soon as table is closed, all of information becomes readable.
Function of my program is to operate around the clock. Checking the data can
be performed occasionaly (by need), however my program can not be halted,
otherwise loss of data will occur. In addition, the data is being checked
via network from another building.
Maybe someone is familiar with a similar problem.
Please reply by e-mail or in the next issue of your newsletter, if it will
be available soon.
Thank You in advance.

With best regards, Igor V. Mashentsev
Nikolaev, Ukraine

e-mail: igo...@zorya.com.ua

 

Re:BDE 32-bit & 16-bit


Have you set LOCAL SHARE to TRUE and NET DIR to the same location as the
16-bit apps ?

"Igor V. Mashentsev" <igo...@yahoo.com> schreef in bericht
news:9auadf$2san$1@merryer.comcent.nikolaev.ua...

Quote
> Hi all!
> I stumbled across the following problem.
> I'm writting a program on Delphi 5 with a use of BDE 5.11.
> The program inputs information into a large database at specific times.
> Data, however is being processed by programs written earlier on Delphi 1
> (16-bit),  by a third party.
> The problem is that when a table is launched in a 32-bit program, the
16-bit
> programs can not read the information from the database. More precisly,
> reads only the information which was in the database at the moment of
> launching the 32-bit program.
> As soon as table is closed, all of information becomes readable.
> Function of my program is to operate around the clock. Checking the data
can
> be performed occasionaly (by need), however my program can not be halted,
> otherwise loss of data will occur. In addition, the data is being checked
> via network from another building.
> Maybe someone is familiar with a similar problem.
> Please reply by e-mail or in the next issue of your newsletter, if it will
> be available soon.
> Thank You in advance.

> With best regards, Igor V. Mashentsev
> Nikolaev, Ukraine

> e-mail: igo...@zorya.com.ua

Re:BDE 32-bit & 16-bit


Quote
Igor V. Mashentsev wrote:

> The problem is that when a table is launched in a 32-bit program, the 16-bit
> programs can not read the information from the database. More precisly,
> reads only the information which was in the database at the moment of
> launching the 32-bit program.

It's all in the BDE NetFileDir -setting. All the 16 and 32 bit applications
must share exactly the same record locking files, and they remain in the
directory called NetFileDir.

Here NetFileDir can not have long filenames, because that's too hard for
16-bit BDE to handle.
Also forget all the \\MYDIRECTORY style notations everywhere, use only
old style, real drive letters and directorynames like D:\MYDIR

Markku Nevalainen

Re:BDE 32-bit & 16-bit


I have suspected for some time that "DbiUseIdleTime" needs to be called
regularly, even by 32-bit programs, and this observation tends to strongly
confirm that in my mind.

In article <9aue6u$bv...@porthos.nl.uu.net>, "M.H. Avegaart"

Quote
<avegaartNOS...@mccomm.nl> wrote:
> Have you set LOCAL SHARE to TRUE and NET DIR to the same location as the
> 16-bit apps ?

> "Igor V. Mashentsev" <igo...@yahoo.com> schreef in bericht
> news:9auadf$2san$1@merryer.comcent.nikolaev.ua...
> > Hi all!
> > I stumbled across the following problem.
> > I'm writting a program on Delphi 5 with a use of BDE 5.11.
> > The program inputs information into a large database at specific times.
> > Data, however is being processed by programs written earlier on Delphi 1
> > (16-bit),  by a third party.
> > The problem is that when a table is launched in a 32-bit program, the
> 16-bit
> > programs can not read the information from the database. More precisly,
> > reads only the information which was in the database at the moment of
> > launching the 32-bit program.
> > As soon as table is closed, all of information becomes readable.
> > Function of my program is to operate around the clock. Checking the data
> can
> > be performed occasionaly (by need), however my program can not be halted,
> > otherwise loss of data will occur. In addition, the data is being checked
> > via network from another building.
> > Maybe someone is familiar with a similar problem.
> > Please reply by e-mail or in the next issue of your newsletter, if it will
> > be available soon.
> > Thank You in advance.

> > With best regards, Igor V. Mashentsev
> > Nikolaev, Ukraine

> > e-mail: igo...@zorya.com.ua

Re:BDE 32-bit & 16-bit


Sundial Services International, Inc. wrote:

Quote

> I have suspected for some time that "DbiUseIdleTime" needs to be called
> regularly, even by 32-bit programs, and this observation tends to strongly
> confirm that in my mind.

Borland warns to never use DbiUseIdleTime as it has no flushing effect:
http://www.borland.com/devsupport/bde/bdeapiex/dbiuseidletime.html

If this function it's useless, I wonder why Borland has kept it years
packed in Delphi/BDE package.

With BDE it's LocalShare = True that makes the whole thing!
Someone suggested to use DbiSaveChanges still along with that. But without
knowing the exact BDE internal design, I quess the built in LocalShare trigger
always gets fired first, and before thus the DbiSaveChanges call would be late
or useless anyway.

Markku Nevalainen

Other Threads