Thank you for your answer.
I run the  program that I set error in it previousely
Then I debug it and  find the error code is -2134

Now I find a weird thing.
When I connect the database and then disconnect .
After disconnection, The function getGroupInfo() can handle the error
well in the first time .when I run function getGroupInfo() once again.
It can't handle the error, and hange.
The core sentences is following :

        EXEC SQL WHENEVER SQLERROR DO handleError("error");
        EXEC SQL CONTEXT USE :ctx[contextId];
        EXEC SQL WHENEVER NOT FOUND DO handleError("not select row!");
        
        EXEC SQL SELECT logId,accessId,description
INTO :newLoginId,:newAccessId,:newDescription
                FROM groupInfo WHERE groupid=:newGroupId;

Can you tell me why ?
Thanks!
        


-----邮件原件-----
发件人: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 代表 Stephane Faroult
发送时间: 2003年3月26日 16:19
收件人: Multiple recipients of list ORACLE-L
主题: RE: how to confirm the context has been initialized .



>----- ------- Original Message ------- -----
>From: "liujd" <[EMAIL PROTECTED]>
>To: Multiple recipients of list ORACLE-L
><[EMAIL PROTECTED]>
>Sent: Tue, 25 Mar 2003 22:53:44
>
>i write two function .
>one is login function as login(char * password,int
>contextId).this
>function initialize the context environment .and
>login database.
>two is getGroupInfo(char * groupName,int
>contextId); this function is as
>his name to get one group information.And refer to
>ctx[contextId] in the
>login function initial
>the sql_context variable is declared in the *.h as
>following
>EXEC SQL  BEGIN DECLARE SECTION;
>        sql_context ctx[20];
>EXEC SQL  END  DECLARE SECTION;
>Now ,my question is in the function two(
>getGroupInfo() ) ,how to judge
>the ctx[contextId] has been initialized before used
>it?
>
>thanks in advance!
>

static char global_init = 0;
             /* Initialized at compile-time */

login(..)
{
 /* do stuff */
 global_init = 1;
}

getGroupInfo()
{
 if (!global_init)
    {
     fprintf(stderr, "Not logged on, get lost\n");
     exit(1);
    }
 /* Now you're safe */
}

And reset global_init to 0 in the logoff function.

Regards,

Stephane Faroult
Oriole
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Stephane Faroult
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: liujd
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to