ecpg did not precompile declare cursor

Поиск
Список
Период
Сортировка
От Lee Kindness
Тема ecpg did not precompile declare cursor
Дата
Msg-id 15475.27272.230954.548931@kelvin.csl.co.uk
обсуждение исходный текст
Ответ на ecpg did not precompile declare cursor  (Bernhard Rückerl <bernhard_rueckerl@yahoo.de>)
Список pgsql-bugs
This is expected behaviour, the 'real' code gets emitted when you OPEN
the cursor, i.e. you should be doing something like:

 EXEC SQL DECLARE demo_cur CURSOR FOR
   SELECT field1, field2
   FROM test;
 EXEC SQL OPEN demo_cur;
 if( sqlca.sqlcode != 0 )
 {
   some_error();
   return;
 }
 while( 1 )
 {
   EXEC SQL FETCH demo_cur INTO :field1, :field2;
   if( sqlca.sqlcode < 0 )
   {
     some_error();
     break;
   }
   else if( sqlca.sqlcode != 0 ) /* or == 100... */
     break;

   process_row();
 }
 EXEC SQL CLOSE demo_cur;

Bernhard Rückerl writes:
 > Hello,
 >
 > I have downloaded postgresql 7.2 on my machine.
 > Running ecpg on my .ec-file I found that ecpg did not process
 > the statements "exec sql declare xxx cursor for select.
 >
 > The part in my .ec-file:
 > if ( firstcall )
 >    {
 >    calid1 = calid;
 >    EXEC SQL DECLARE CURMFDPOINT CURSOR FOR SELECT STABLE_OR_INSTABLE ,
 >             HIERARCHY , POINT_ID , X1 , P1 , X2 , P2 FROM MANIFOLD_POINTS WHERE
 >             CAL_ID = :calid1;
 >    raiseerror( );
 >    firstcall = false;
 >    }
 >
 > was transformed into
 > if ( firstcall )
 >    {
 >    calid1 = calid;
 >    /* declare CURMFDPOINT  cursor for select  STABLE_OR_INSTABLE  , HIERARCHY  , POINT_ID  , X1  , P1  , X2  , P2
fromMANIFOLD_POINTS where CAL_ID  = ?   */ 
 > #line 224 "dbcontrol.ec"
 >
 >    raiseerror( );
 >    firstcall = false;
 >    }
 > So the declare cursor statement was just commented out. As a consequence the
 > programm terminated with sqlca.sqlcode=-602 when doing the according
 > fetch statement.

В списке pgsql-bugs по дате отправления:

Предыдущее
От: pgsql-bugs@postgresql.org
Дата:
Сообщение: Bug #597: ResultSet.next() throws NullPointerException
Следующее
От: pgsql-bugs@postgresql.org
Дата:
Сообщение: Bug #598: optimizer: convert 'IN' to join