Oracle dataserver with find prev last. Strange results

xiffy

New Member
Hi all,
I've succesfully transferred my progress database using the progress tools. I've set up a remote dataserver and a unix client, and after compilation, most of my programms work well. But i have some issues with the find prev last functionality. Every now and then oracle fetches the last record when i asked for the prev record. a code sample:
Code:
def var i as int.
do with frame f-down with 10 down:
find first adrs where adrs-zoeknm begins 'u' no-lock use-index adrs-zoeknm.
do while i < 4 :
disp adrs.adrs-zoeknm recid(adrs) i adrs-type.
down with frame f-down.
find next adrs no-lock use-index adrs-zoeknm.
i = i + 1.
end.
find prev adrs use-index adrs-zoeknm.
do while i > 0:
disp adrs.adrs-zoeknm recid(adrs) i adrs-type.
down with frame f-down.
find prev adrs use-index adrs-zoeknm.
i = i - 1.
end.
which results in:
UDO 937 0 1
UITZEND 939 1 1
VAART 940 2 1
VAGEVUUR 941 3 1
VAGEVUUR 4 1 941
VAART 3 1 940
UITZEND 2 1 939
235'1 1 1 13

The last record shown is the odd one out, it should have been UDO 937 0 1, not 235'1 1 1 13 Which happens to be the last record for this index.
Index in oracle:
adrs_type NUMBER
U##adrs_zoeknm VARCHAR2
PROGRESS_RECID

I haven't got a clue where to look, so any hints are welcome.
 
Well, filed this as a bug with progress corp. No reply yet. I'll keep you posted when things develop
 
Solved

After some long investigation, filling a bug with progress, numerous tests i finnaly solved this awckward puzzle. When recreating this problem in an other testenvironment, Oracle did something strange with the sorting on two differnt machines.
It happened to be the oracle SQL*Net that had a different language setting then the database. When querying the DB on the server, the resultlist was sorted as expected, but on the client it was different.
Combined with the conformation I had from progress that no matter how you set up your dataserver configuration, even if oracle and progress reside on the same box, SQL*Net is always used. So changing the language setting for SQL*Net made tha epplicaion behave as expected.
If you ever run into this kind of problems, recheck all compononts of oracle and verify the language settings are consistent from the end to the beginning.
 
Back
Top