Consultor Eletrônico



Kbase P15231: How to overcome limitations of Reposition and Browse using Oracle DataServer?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   16/10/2008
Status: Verified

GOAL:

How to overcome limitations of Reposition and Browse using Oracle DataServer?

GOAL:

What is srv-get-prev Dsrv option?

FACT(s) (Environment):

Oracle DataServer
Progress 9.1x

FIX:

Query reposition may force the DataServer to send another SQL statement to Oracle, and in that case, the result set will be rebuild. Therefore, when you do a reposition to the last record, you will only be able to see the last record in a default configuration.

You can change the default behavior by using the -Dsrv srv-get-prev parameter. That should allow you to scroll back through the previous records.

The srv-get-prev Dsrv option was introduced in 9.1A to overcome the limit where following a reposition in a browse widget, the result set of the browse was recreated, preventing one from browsing backward.

EXAMPLE:

If the user composes a query such as:

"open query x for each customer where state = "NH" use-index name
indexed-reposition"

The original sql generated would be very similar to:

"select * from customer where state = "NH" order by name, progress_rec_id"

Upon encountering a reposition request, to "smith" for example (which
required new sql to be built), the sql would look like:


"select * from customer where (((state = "NH") and ((name = "smith"
and progress_rec_id > <value>) or (name > "smith"))) order by name,
progress_rec_id)"

If the next request is a "get previous", and the optional switch is used,
the resulting sql would look like this:

"select * from customer where (((state = "NH") and ((name = "smith"
and progress_rec_id < <value>) or (name > "smith"))) order by name
descending, progress_rec_id descending)"