Curt,
I too spent a lot of my ND life thinking Dynamic Criteria are as trustworthy
as instance variables, until I was corrected recently.
>From what I learned, even though dataObject.addDynamicCriterion() sounds
like adding something to the DataObject instance, ND goes and keeps the
stuff in a userSessionObject, so it stays for the same user for later use.
This functionality seems to be crucial for the built-in handling of Next,
Prev etc.
I had read a detailed note on this, but not able to locate it. It was fairly
recently, otherwise I would doubt myself.
Regards,
Aby
> -----Original Message-----
> From: Curt Springer [SMTP:[EMAIL PROTECTED]]
> Sent: Friday, May 21, 1999 2:38 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [ND] Why do I have to execute the dataobject before
> calling its getValue()?
>
> see below
>
> At 11:02 AM 5/21/99 -0800, [EMAIL PROTECTED] wrote:
> >Hi,
> >
> >If some one could clarify the following that will be great-
> >
> >My Case:
> >I have a DO that is not bound to the page, I am calling it on
> >the onBeforeDisplay event of the page and adding dynamic
> >criterion to it to personalize the contents of the page
> >(actually a listbox on the page) for the user. Now I want to use
> >the same DO in onWebEvent of a button the page, regarding that I
> >have following questions-
> >1. Why do I have to call execute() method of the DO before
> >calling its getValue()?
>
> execute() causes the SQL 'select' statement to be sent to the dbms and
> results to be retrieved back. When the DO is bound to the page, the page
> calls execute() automatically. When the DO is not bound, you have to do
> it
> yourself.
>
> >2. Can I be sure that the DO's dynamic criteria is still the same
> >assuming multiple user sessions are active and provided I did
> >not change the criteria any where else in the code? My understanding is
> that- instances DOs are not shared between sessions.
>
> I must admit I took a long time to get this straight (pre-emptive
> statement).
>
> Dynamic criteria in a DO are like member variables in a page object. They
> hold for the life of a web event, i.e., from a page load or beginning of
> button/href method, until a page is sent back to the browser (including
> the
> situation where you set criteria on a DO in a button event, then load
> another page and execute the DO in that page's onBeforeLoad or
> onBeforeDisplay event). And, at the outset of a web event, they must be
> assumed to reflect work done in a previous web event using the same
> object.
>
> At the beginning of a web event, the DO might have criteria set by another
> page session. So before you add any dynamic criteria for the current page
> session, you must execute clearDynamicCriteria on the DO. Then you can
> add
> your current criteria.
>
> Also, in case it was not clear above, in one web event, if you are in a
> button event of PageA, and you call CSpider.getDataObject("DO"),
> and then you load PageB, and in its onBeforeLoadEvent, you call the same
> CSpider.getDataObject("DO"), you will get the same object.
>
> -- Curt Springer, Team ND
>
>
> >
> >Thanks in advance to all the noble souls who are gonna reply...
> >
> >Vishal
> >_________________________________________________________________________
> >
> >For help in using, subscribing, and unsubscribing to the discussion
> >forums, please go to: http://www.netdynamics.com/support/visitdevfor.html
> >
> >For dire need help, email: [EMAIL PROTECTED]
> >
> _________________________________________________________________________
>
> For help in using, subscribing, and unsubscribing to the discussion
> forums, please go to: http://www.netdynamics.com/support/visitdevfor.html
>
> For dire need help, email: [EMAIL PROTECTED]
_________________________________________________________________________
For help in using, subscribing, and unsubscribing to the discussion
forums, please go to: http://www.netdynamics.com/support/visitdevfor.html
For dire need help, email: [EMAIL PROTECTED]