Q&A

  • AdoQuery를 이용한 Excel 파일 불러오기




안녕하세요...

제가 Excel파일을 AdoQuery를 이용해서 그리드로 불러오는 작업을 하고 있는데요..

이상한 현상이 있어서 조언을 구하고 싶습니다.

아래와 같은 방법으로 읽어 오는데요.

<!--CodeS-->
while not AdoQuery.Eof do //자료가 끝날때 까지
begin
    grdDataview.AddRow();
    for mCol := 0 to AdoQuery.Fields.Count - 1 do
        grdDataview.Cells[mCol, mRow].Value := AdoQuery.Fields[mCol].Value;  //<== (1)

    Inc(mRow);
    Application.ProcessMessages;
    AdoQuery.Next; //다음 레코드로 이동한다.
end;                                                              
<!--CodeE-->

eximg1.jpg와 eximg2.jpg의 경우 모두 6번째줄까지만 A컬럼의 데이터가 올라오고

7번째부터는 Null로 올라오는 현상이 발생하고 있습니다...+_+

(1)번 라인에서 브레이크를 걸어보면 Null로 올라오는게 보이더라구요.

엑셀의 컬럼에 오류표시가 있어서 값이 널로 올라오는 건 아니구요..

처음에는 데이터가 올라오다가 입력타입(?)이 바뀌면 널로 올라오더라구요..

이 현상의 원인을 아시는분 혹시 없으신가요???

부탁드립니다...

그럼...(--)(__)(--);;
1  COMMENTS
  • Profile
    허학송 2007.03.23 01:02
    저도 이겄때문에 헤맨적이 있는데 ADOQuery에서 Excel을 읽을때 처음 1 - 5 가 6 번째 Row까지
    Check해보고 해당 Col의 속성(char, float..)을 결정해버리더라구요(이게Bug인지?)..  
    해서 ADoQuery.field[n]의 속성을 원하시는 Type으로 바꿔주시면 될것으로 보입니다.
    아니면 ADoquery Dataset속성을 지정하실때 Extended=False인가를 지정하면
    된다고 알고 있습니다.
    도움이되시길