2013-04-17 1 views
0

UPDATE 쿼리에 대해서도 커서를 선언하고 열 수 있습니까? 아니면 SELECT 쿼리에 대해서만 사용할 수 있습니까?UPDATE 쿼리에 커서를 사용할 수 있습니까?

EXEC SQL PREPARE S FROM :query; 
    EXEC SQL DECLARE C CURSOR FOR S; 
    DbUtilT::set_bind_variables(bind_dp,&paramList); 
    EXEC SQL OPEN C USING DESCRIPTOR bind_dp; 
    EXEC SQL WHENEVER NOT FOUND GOTO end_update_loop; 
    EXEC SQL FETCH C USING DESCRIPTOR bind_dp; 
    EXEC SQL COMMIT WORK; 

괜찮습니까? 아니면 커서를 SELECT 문에 대해서만 사용해야하고 어떻게 UPDATE 쿼리를 실행합니까? 당신이 할 수있는 다음

SELECT id FROM mytable WHERE ... FOR UPDATE OF id 

:

+0

Pro * C입니까? –

+0

@Alex - 네, Pro * C – user862833

답변

1

query 경우 뭔가처럼

... 
EXEC SQL FETCH C USING DESCRIPTOR bind_dp; 
EXEC SQL UPDATE mytable SET id = <something> WHERE CURRENT OF C; 

난 당신이 비록 무슨 뜻인지 확실히 모르겠어요; 커서를 사용하여 업데이트를 수행 할 필요가 없습니다.

EXEC SQL UPDATE mytable SET id = <something> WHERE ...; 

... 또는 이와 동등한 준비된 문.

나는 완전히 그 질문을 오해 했습니까?

+0

에 있습니다. 우리가 donot에 쿼리에서 바인드 변수가있는 것이 맞습니다. 내가 쿼리에서 바인드 변수를 사용하고 있다면 .. 업데이트 설정 = BIND_VAR1 곳 = BINDVAR2 및 = BINDVAR3 방법으로 이동합니다? – user862833

관련 문제