Consultor Eletrônico



Kbase 15183: Commonly asked questions about Report Builder and -RO
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/05/1998
Commonly asked questions about Report Builder and -RO


Q: I go into the progress data dictionary, create a
table and a field, ie customer.cust-num. Then I go back
to the editor and do CREATE customer.
ASSIGN customer.cust-num = 1. RELEASE customer.
Then I start report builder from the Tools menu, create
an instant report on customer and cust-num. When I
do a print preview I get "no records found". If I go
back to the editor and do a FIND, it finds the record.
Why doesn't Report Builder find the record?

By the way, in Report Builder I connect to the db with -RO.

A:Report Builder should never be run with the -RO parameter.
-RO instructs Progress to only read from the disk and not
from what is in memory buffers. If the progress session is
still running (ie the editor is still open) the transactions
are in memory buffers which is where the 4gl is reading
from but they have not been permanently written to the disk.
If running stand alone and you want to be connect to the
database by the editor and report builder you have to use
the DDE (wipc with 7.3b and above) server.

-----------------------------

Q:According to my progamming knowledge and the documention V6 and V7,
especially pge 899 Lang Ref Vol 2, the release Statement should
flush all buffered data (and also release the locks, if possible).
That is how progress works. The release~*must* flush the data into
the Database.

A: At best, it can cause the user to get obsolete data; worst,
it will lead to database errors and/or GPF's.

The intent of the -RO option is that it means that the
entire database read-only. Apparently, it was originally
intended for use with databases that really *were* read-only
(e.g. on a CD-ROM). It doesn't mean that applications connecting
to the database is read-only--it means that the whole database
is read-only. Under the covers, what -RO means is that the
SQL Engine (running on behalf of the Report Builder) will look
only at what's actually in the disk files that represent the database.
This means that the SQL Engine will ignore any in-core memory
buffers that may be in use by the Progress client running a
different application (such as the ADE). Because of in-core
buffers and caches and what-not the disk file is frequently
in an inconsistent state while a Progress client is running,
and if the Report Builder is accessing the database with -RO,
it will see inconsistent data in the disk files.

-----------------------------

Q: If the first connect is a single-user connect WITHOUT -RO,
i.e. in update-mode, and later a second session, e.g. the RB,
connects with -RO -- does this second connect switch the
db-status to "read-only" although it is already opened in
update-mode???

A: When a client connects to a database using -RO, this means
only that the client expects the database to be read-only--i.e.
the client treats the database as though nobody else was writing
to it, but the client does no checking on this and neither does
anybody else. The client, believing that nobody is writing to
the database, looks only at the disk file(s) for the database,
so it doesn't notice any buffers. If another client is updating
the database (and therefore if some of the database data is in
buffers), the -RO client never notices--until it GPF's because
of what it thinks is corrupted data in the disk file(s).
Also, the client that is updating is not aware of the -RO client.

-----------------------
*** NOTE ****
Since Report Builder should absolutely not be run with -RO,
Progress Software cannot support it when problems are encountered.

Progress Software Technical Support Note # 15183