Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 03 OCT 2003 06:27:33AM Oystein Reigem wrote:

Regarding that problem with large result lists overwriting each other: I have a case where a large list is overwritten by a secondary search, even if that secondary search doesn't find anything!

The secondary search is a compound SELECT statement

SELECT OBJEKT ( WITH AKSNR=AKS.1910.001" ) AND ( WITH OBJTYPE=Foto' )

It looks like the overwriting list is a result of the ( WITH OBJTYPE=Foto' ) clause!!

The queried table has 53016 rows, of which 38407 satisfy that second clause. Only one row satisfies the first clause.

Is this old news?

I use OI 4.1.2.

When was this problem fixed again? Not until 7.0?

Please help!

- Oystein -


At 03 OCT 2003 06:59AM The Sprezzatura Group wrote:

Sorry Oy - what results did you get and what were you expecting?

The Sprezzatura Group

World Leaders in all things RevSoft


At 03 OCT 2003 07:23AM Oystein Reigem wrote:

Sprezzatura,

My program does an RList SELECT BY @ID on some table called OBJEKT. Then it does a readnext loop through each row.

There are over 50,000 rows, and the keys are a bit lengthy, so the result list spans 6 SYSLISTS T rows.

For some of the OBJEKT rows the program needs to check or count the occurrences of various stuff in the same table. So during that first loop of the whole table there are some secondary RList SELECTs.

If any of these secondary SELECTs resulted in a large result list I'd expect the secondary list to overwrite the primary list (i.e, overwrite the SYSLISTS T rows). Knowing my data I knew the secondary SELECTs would only yield small result lists. So I didn't worry.

But it seems that some secondary SELECTs still overwrite the T rows in SYSLISTS. Some of my secondary SELECTs are compound statements - SELECT AND . Even if the statement as a whole finds no rows, it seems that a large temporary results (the part) gets stored in the T rows. My part results in over 40,000 OBJEKT rows and 21 SYSLISTS T rows.

- Oystein -


At 03 OCT 2003 09:37AM Oystein Reigem wrote:

Just in case: Forgot I say I use cursor 0 all the time and save and restore my primary list each time I do a secondary search.

/* save active list */

saveAtDict =@dict

saveAtRecord =@record

saveAtID =@id

saveAtRecCount =@recCount

saveAtRnCounter=@rn.Counter

Push.Select( Cursor, Save1, Save2, Save3 )

…do secondary stuff…

/* restore active list */

Pop.Select( Cursor, Save1, Save2, Save3 )

transfer saveAtDict to @dict

transfer saveAtRecord to @record

transfer saveAtID to @id

transfer saveAtRecCount to @recCount

@rn.Counter=saveAtRnCounter

- Oystein -

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/f5fa1789c834401985256db400397453.txt
  • Last modified: 2023/12/30 11:57
  • by 127.0.0.1