* 사용환경 : 델파이4 / Windows 98
* 서버환경 : WindowNT4.0 Oracle8.0
car_name 테이블 필드는 약 25개
Car_name 테이블의 데이터는 4건을 넣고 테스트
* 처리로직 : procedure TSelect_Sum1.Button3Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(' select * from car_name ');
Query1.Open;
ShowMessage(StrToInt(Query1.RecordCount)); ==> -1로 옴(4건 있음)
.
.
end;
* 에러 내용 : 위의 문장처럼 너무 단순한건데.....이런 에러가 있어서
쿼리검포넌트를 이용해서 데이터를 가져와서 에디트 박스에 데이
터를 뿌리는 건데.. 이상하게 쿼리컴포넌트에서 그런건지 레코드
카운터가 한건도 오질 않고 그대로 두고 DBGrid에 연결 해서 하면
나오고... 또 그대로 두고 그래드를 비지불 시키면 안나오고
이유가 먼지를 도무지 모르겠습니다....
제발좀 가르쳐 주십시요....
그런데 OPen 하고 나서 Last하면 1로 나와요
> * 사용환경 : 델파이4 / Windows 98
>
> * 서버환경 : WindowNT4.0 Oracle8.0
> car_name 테이블 필드는 약 25개
> Car_name 테이블의 데이터는 4건을 넣고 테스트
>
> * 처리로직 : procedure TSelect_Sum1.Button3Click(Sender: TObject);
> begin
> Query1.Close;
> Query1.Sql.Clear;
> Query1.Sql.Add(' select * from car_name ');
> Query1.Open;
> ShowMessage(StrToInt(Query1.RecordCount)); ==> -1로 옴(4건 있음)
> .
> .
> end;
>
> * 에러 내용 : 위의 문장처럼 너무 단순한건데.....이런 에러가 있어서
> 쿼리검포넌트를 이용해서 데이터를 가져와서 에디트 박스에 데이
> 터를 뿌리는 건데.. 이상하게 쿼리컴포넌트에서 그런건지 레코드
> 카운터가 한건도 오질 않고 그대로 두고 DBGrid에 연결 해서 하면
> 나오고... 또 그대로 두고 그래드를 비지불 시키면 안나오고
> 이유가 먼지를 도무지 모르겠습니다....
> 제발좀 가르쳐 주십시요....
> 그런데 OPen 하고 나서 Last하면 1로 나와요
>
기본적으로 Query 의 RecordCount 속성을 사용하는 것은 위험합니다.
위의 예에서 Record 가 4 건 있는데 Record 가 -1 로 나오는 것은
Sql 문에서 AsterRisk (*) 를 사용했기 때문이 아닐까요 ?
제 경험 상으로 볼때 Query 문에 * 를 사용했을 때 위와 같은 문제가 발생하므로
Select Field1 From Car_Name 이렇게 쓰시면 RecordCount 가 4가 나올것입니다.
>
>
>