Board index » delphi » Displaying DBase-DB with Delphi 3 Client/Server

Displaying DBase-DB with Delphi 3 Client/Server

Hi,

i want to display a DBase-Database with Delphi 3 Client/Server and Borland
Database Engine 4.5.

The problem is, that the DBase-File is on a network-server and is used by a
Clipper-program (version 5.2d), which fills the database with different
sort of data.
The database in this clipper-program is opened with the command:

DBUSEAREA(.T.,,"DATEN.DBF","DATEN",.T.)

This is a shared-access.

The Delphi-program runs on a client and should get always the actual data
from the DBase-database.
I have opened the Database with a TTable-component and I can display the
data.
But if the clipper-program fills new data in the DBase-File, the
Delphi-program didn't recognizes it !

How can I display always the actual data ?

If someone has any ideas, please give me an answer.

Thanks,

Mark Schoch.

 

Re:Displaying DBase-DB with Delphi 3 Client/Server


Try using ODBC.

BobC

Re:Displaying DBase-DB with Delphi 3 Client/Server


On Mon, 8 Feb 1999 08:40:15 -0000, "Mark Schoch" <m...@schoch.vol.at>
wrote:

Quote
>i want to display a DBase-Database with Delphi 3 Client/Server and Borland
>Database Engine 4.5.

>The problem is, that the DBase-File is on a network-server and is used by a
>Clipper-program (version 5.2d), which fills the database with different
>sort of data. The database in this clipper-program is opened with the command:

>DBUSEAREA(.T.,,"DATEN.DBF","DATEN",.T.)

>This is a shared-access.

>The Delphi-program runs on a client and should get always the actual data
>from the DBase-database. I have opened the Database with a TTable-component and I can display the data. But if the clipper-program fills new data in the DBase-File, the Delphi-program didn't recognizes it !

>How can I display always the actual data ?

dBASE and Clipper tables are not the same. There are various aspects in
which the two table types are different, including: index formats,
information in the table file headers, and how data is stored in the table
file.

It is obvious from this case that Clipper is storing the data into this
file in a manner not in compliance with the dBASE table specification. That
means that, after data has been stored in the table, it is no longer a
dBASE table and is instead a Clipper table. The BDE only supports Clipper
tables in as far as they are truly dBASE-compatible.

One example of incompatible data storage I seem to remember is that Clipper
stores numeric values right justified in the space allocated for a field
value, but the dBASE specification calls for a left justified value. As a
result of this difference, data engines that follow the dBASE table
specification are unable to use that data.

Further, you mention shared use of the tables. The BDE is not and has never
been designed to operate on a table concurrently with a Clipper
application. What is more, users have reported problems when trying to do
so. These problems have included: errors, data corruption, and not being
able to see updated or newly added records.

One thing you might consider if you need this sort of concurrent access is
a different data engine. There are a number of options available. There are
third-party data engines like Apollo that are capable of using Clipper
tables and can be used in place of the BDE in a Delphi application. Another
option is a Clipper-compatible ODBC driver (requires Professional edition
or above of Delphi).

//////////////////////////////////////////////////////////////////////////
Steve Koterski                   "Writers have two main problems. One is
Technical Publications           writer's block, when the words won't come
INPRISE Corporation              at all, and the other is logorrhea, when
http://www.inprise.com/delphi    the words come so fast that they can
                                 hardly get to the wastebasket in time."
                                                    -- Cecelia Bartholomew

Other Threads