|
다수의 프로그램이 하나의 DB를 접근하는 관계로 Data의 동기가 맞지 않아서
프로시져를 사용하려고 합니다. 처음 사용해 보는 것이라 그런지 이상한 현상이 나타나네요..
프로시져는 out 인자를 사용해서 5~6의 인자를 리턴 받습니다.
그리고 프로그램에서 프로시져 객체를 동적 생성해서 사용을 하는데..
이상한 점은 처음 새성 했을때는 이상 없이 데이터가 나오는데..
2번째부터는 데이터에 쓰레기 값들이 붙어서 나온다는 겁니다..
integer 값들은 정상적으로 나오는데, 특히 Varchar2에 해당하는 값이 쓰레기 값들이 붙어서 나오네요..
sproc = new TStoredProc(NULL);
sproc->DatabaseName = "AAA";
sproc->Params->CreateParam(ftInteger, "A", ptInput);
sproc->Params->CreateParam(ftInteger, "B", ptInput);
sproc->Params->CreateParam(ftInteger, "C", ptInput);
sproc->Params->CreateParam(ftString, "D", ptOutput); --<
sproc->Params->CreateParam(ftInteger, "E", ptOutput);
sproc->Params->CreateParam(ftInteger, "F", ptOutput);
sproc->Params->CreateParam(ftInteger, "G", ptOutput);
sproc->Params->CreateParam(ftString, "H", ptOutput);
sproc->Params->CreateParam(ftInteger, "I", ptOutput);
sproc->ParamByName("J")->AsInteger = 1; //입력부
sproc->ParamByName("K")->AsInteger = 15; //입력부
sproc->ParamByName("L")->AsString = "1234567890123"; //입력부
sproc->ExecProc();
strid = sproc->ParamByName("D")->AsString; //출력부 -->문제의 부분
for (int i = 0; proc->ParamCount; i++) {
proc->Params->Delete(0);
}
delete sproc;
sproc = NULL;
고수님들이 답변 기다립니다..
|