raised execption class EOleException with message '데이터 공급자나 기타 서비스가 E_FAIL 상태를
반환했습니다', Process stopped. Use Step or Run to continue.
ADO로 연결을 했고요 DB는 MS-SQL입니다.
쿼리를 쿼리분석기를 통해 실행하면 정상적으로 16건의 데이터가 검색이
되는데 이것을 스트링 그리드에 표현할때 이런 메시지가 나오네요.
// 스트링 그리드에 데이터 뿌리는 부분은 생략했습니다.
If Not isEmpty Then Begin
sgList.RowCount := RecordCount + 1;
While Not Eof Do Begin
sgList.Cells[1, sgList.RowCount - 1] := FieldByName('CustName').AsString;
Next;
end;
end;
위의 RecordCount에서 먼저 에러가 나서 이부분을 없애면
Next에서 에러메시지가 나옵니다.
데이터도 9건정도 표시하다가 에러메시지가 나옵니다.
확실한건 SQL문 에러는 아닌데 ADO의 버그인지...
다른 조회도 다 위와 같은 방법으로 조회를 했는데 여기서만 에러가 나네요.
로직에 의문1)
CELLS[1,SGLIST.ROWCOUNT-1] 에 CUSTNAME 을 반복하여 같은 위치에 저장?
의문2) NEXT 가 과연 ADOQUERY 의 프로시져인가?
의문3) ROWCOUNT 가 안된다면 DATASET 이 전혀 안들어 오는거 아닌가?
(MS-SQL에선 ROWCOUNT 가 안되는것인가?)
의문4) ROWCOUNT 가 안된다면 NEXT 또한 DATASET 이 없기 때문에
에러가 발생되는것 아닌가?
해결방법제시) DBGRID 에 연결해서 DATA가 나오는지 확인해보셈.