Hello Steeve,

Can you post the code you used to test, as I found the following:


Using the next method:            2:27.002
Using the while method:            2:27.010
Using the query method:            5:04.052

The number of records in the table was:      59071

The code I used was:

static void Job231(Args _args)
{
    Query                                   Query;
    QueryBuildDataSource                    qbds;
    QueryRun                                QueryRun;
    PCDrockfastTrxHeader                    PCDrockfastTrxHeader;
    int                                     i,st;
    ;

    // Ensuring the creation of an execution plan
    while
    select  PCDRockfastTrxHeader
    {
        i = 0;
    }

    st      = winAPI::getTickCount();
    select  PCDrockfastTrxHeader;
    while   (PCDrockfastTrxHeader)
    {
        i   = 0;
        next PCdrockfastTrxHeader;
    }
    info("Next:   " + Milliseconds2strhms(winAPI::getTickCount() - st));

    st      = winAPI::getTickCount();
    while
    select  PCDrockfastTrxHeader
    {
        i = 0;
    }
    info("While:  " + Milliseconds2strhms(winAPI::getTickCount() - st));


    Query       = new Query();
    qbds        = Query.addDataSource(TableNum(PCDRockfastTrxHeader));
    QueryRun    = new QueryRun(Query);

    while   (QueryRun.next()) {
        i = 0;
    }
    info("Query:  " + Milliseconds2strhms(winAPI::getTickCount() - st));
}

The following was placed in the global class.

static TempStr milliSeconds2StrHMS(int time)
{
    int                             millisec;
    ;

    millisec            = time mod 3600 mod 60 mod 1000;
    time                = time div 1000;
    return  Time2strHMS(time) + "." + num2str0(millisec, 3,0,0,0);
}




Barry.




-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Steeve Gilbert
Sent: Thursday, 22 December 2005 12:03 AM
To: [email protected]
Subject: RE : RE : [development-axapta] Reset position in a tablebuffer

Sorry, I always tought "while select" was faster but just did a test and it doesn't seem so.

Steeve...


-----Message d'origine-----
De : [email protected] [mailto:[EMAIL PROTECTED] De la part de densop1
Envoyé : 21 décembre 2005 04:01
À : [email protected]
Objet : Re: RE : [development-axapta] Reset position in a tablebuffer

Yes "select ct" initialises the buffer again. But it doesn't matter
if you uses "while select" or "next".

Simon 

--- In [email protected], "Steeve Gilbert"
<[EMAIL PROTECTED]> wrote:
>
> I would redo the "select ct;".  But you should be doing that
instead :
>
> While select ct {
>     info(ct.AccountNum);
> }
>
> Steeve...
>
>
> -----Message d'origine-----
> De : [email protected] [mailto:development-
[EMAIL PROTECTED] De la part de cdlmalherbe01
> Envoyé : 20 décembre 2005 06:02
> À : [email protected]
> Objet : [development-axapta] Reset position in a tablebuffer
>
> Hi all,
>
> An obvious question to the more experienced, but how does one
reset
> the cursor's position to the first record in a tablebuffer?
>
> Example
> ========
>
> CustTable ct;
>
> ;
>
> select ct;
>
> while (ct)
> {
>     info(ct.AccountNum);
>
>     next ct;
> }
>
> /*what call goes here to reset position of the cursor to the first
> record in the table buffer?*/
>
> while (ct)
> {
>     info(ct.Name);
>    
>     next ct;
> }
>
> Kind regards,
>
> Christoph
>
>
>
>
>
>
>
>

> Yahoo! Groups Links
>











Yahoo! Groups Links











Yahoo! Groups Links










SPONSORED LINKS
Computer part Programming languages Microsoft axapta
Support exchange


YAHOO! GROUPS LINKS




Reply via email to