2012-12-17 3 views
2

는 데이터QT 전화 오라클 내가 입력 매개 변수와 완벽하게 실행되는 두 개의 출력 매개 변수 절차 만 출력 매개 변수를 사용하는 Oracle 저장 프로 시저를 호출하는 QsqlQuery를 사용하고 저장 프로 시저

QSqlQuery movementQuery ; 
movementQuery.prepare("call Qt.add_movement(:pDocumentType , :pDocumentId ,  
to_date(sysdate,'dd-mm-yyyy') ,:pDocumentNumber" 
",to_date(sysdate,'dd-mm-yyyy') , :pCustId ,:pMovementId ,:pReturn)"); 
movementQuery.bindValue(":pDocumentType",documentType); 
movementQuery.bindValue(":pDocumentId",documentId); 
movementQuery.bindValue(":pDocumentNumber",0); 
movementQuery.bindValue(":pCustId",ui->custId->text()); 
movementQuery.bindValue(":pMovementId", 0, QSql::Out); 
movementQuery.bindValue(":pReturn", "FALSE", QSql::Out); 
movementQuery.exec(); 
//// The query executed the query is active and no errors are valid 
//// message is method to display the value 
message(query.boundValue(":pReturn").toString()); 
message(query.boundValue(5).toString()); 
message(query.boundValue(":pMovementId").toString()); 
message(query.boundValue(4).toString()); 

을 주셔서 감사합니다 어떤 아이디어가없는 당신의 관심

+1

'movementQuery'를 실행하고'query'의 바운드 값을 반환합니다. 이 질문을 설정할 때 만든 실수입니까? 또한 Oracle의 Out 매개 변수 유형은 무엇입니까? –

+0

대단히 고맙습니다. 진짜 문제였습니다 – user1909766

+1

@TimMeyer - 귀하의 의견은 OP의 문제를 해결 한 것 같습니다 : 아마도 당신은 대답으로 게시해야하므로 질문은 적절한 SO 패션으로 마무리 될 수 있습니다. – APC

답변

1

당신은 movementQuery

movementQuery.exec(); 

을 실행하고 있지만 당신은 retur된다 바운드 값은 query입니다.

message(query.boundValue(":pReturn").toString());