Query가 오픈된 상태에서 다이엑트로 돌아오는 리턴값을 받을 수있을까요?
아래와 같이 for문을 통해서 돌렸는데 리턴값을 받을려면 Query가 닫혀있어야 한다는 메세지만 뜹니다..
루프안에다 클로즈를 해주면 되기는 하는데 문제는 쿼리를 닫을때 속도가 현저하게 줄어들더군요.. 오픈된상태에서 데이타 베이스에서 돌아오는 리턴코드를 받을수 있는 지 알고 싶습니다.. 테이블이 오픈된상태에서 파라미터만 바꾸어가면서 질의를 하면 커서 이동이 안된는거 같은데 .. 이거 어떻게 해야 할지 모르겠습니다..
꼭 도와 주세요 ..
TemQry->Close();
for (i=1; i < 4220; i=i+1)
{
this->Caption = IntToStr(i);
TemQry->ParamByName("PDate")->AsString = ADate;
TemQry->ParamByName("count")->AsInteger = i;
TemQry->Open();
// 질문 부분입니다..
/* TemQry->Close();
이부분이 삽입되면 너무 느려져요.. 또는
TemQry->Next(); 요렇게 하면 말이죠..
*/
위부분은 없애고 다이렉트로 db커서를 이동시키고 싶은데 어떻게 방법이 없을 까요?
//레코드가 없으면 그부분에 1개 삽입한다..
if ( TemQry->RecordCount == 0 )
{
TemQry->Close();
break;
}
}
> Query가 오픈된 상태에서 다이엑트로 돌아오는 리턴값을 받을 수있을까요?
> 아래와 같이 for문을 통해서 돌렸는데 리턴값을 받을려면 Query가 닫혀있어야 한다는 메세지만 뜹니다..
> 루프안에다 클로즈를 해주면 되기는 하는데 문제는 쿼리를 닫을때 속도가 현저하게 줄어들더군요.. 오픈된상태에서 데이타 베이스에서 돌아오는 리턴코드를 받을수 있는 지 알고 싶습니다.. 테이블이 오픈된상태에서 파라미터만 바꾸어가면서 질의를 하면 커서 이동이 안된는거 같은데 .. 이거 어떻게 해야 할지 모르겠습니다..
> 꼭 도와 주세요 ..
>
>
> TemQry->Close();
> for (i=1; i < 4220; i=i+1)
> {
> this->Caption = IntToStr(i);
> TemQry->ParamByName("PDate")->AsString = ADate;
> TemQry->ParamByName("count")->AsInteger = i;
> TemQry->Open();
>
> // 질문 부분입니다..
> /* TemQry->Close();
> 이부분이 삽입되면 너무 느려져요.. 또는
> TemQry->Next(); 요렇게 하면 말이죠..
> */
> 위부분은 없애고 다이렉트로 db커서를 이동시키고 싶은데 어떻게 방법이 없을 까요?
>
>
> //레코드가 없으면 그부분에 1개 삽입한다..
> if ( TemQry->RecordCount == 0 )
> {
> TemQry->Close();
> break;
> }
> }
>
안녕 하세요
오현수 입니다.
말씀하신것과 같이 Query는 Open된 상태에서는 질의가 불가능합니다.
사용하신 방법에 문제가 있는것 같은데요
위와 같이 하시면 Query의 질의를 4219번 반복하게 됩니다.
이렇게 되면 잘아시겠지만 아무리 빠른 컴퓨터에서도 속도가 무지느려지게 됩니다.
SQL의 내용이 어떻한 것인지는 모르겠지만 위와 같은 방법은
합리적인 방법은 아니것 같습니다.
SQL문을 잘 사용하면 한번의 질의로 구현이 가능할 것 같은데요.
구현하고자 하는 내용과 사용한 SQL문을 다시 올려주시면
답변드리는데 도움이 될것 같습니다.
>