Q&A

  • ADO사용문제입니다.
ADO사용문제입니다.
ADO로 개발할때 속도문제

ADO를 이용하면 배포의 간편함과 BDE의 무거운 무게에 대한 부담이 덜 수 있다고 하여, 테스트 프로그램을 하나 작성해봤습니다.

그냥 결과를 DBGrid에 뿌려주는 프로그램을 작성해보았는데요.

ADOQuery와 ADOTable 두개를 가지고 한번 화면에 뿌려보았습니다.

그런데 두가지 문제가 있습니다.

전 ADO를 사용하는게 BDE사용보다 느린것 같습니다. 제가 이상한건가요? 반응속도가 BDE사용과비교해서 현저하게 느립니다.

또 한가지는 에러가 나는데요 EvariantError에러 라고 나는거 같습니다. ADOTable을 이용해서 결과를 DBGrid에 뿌릴때, 에러가 납니다.

한번에러가 난뒤로는 다시 시도하면 에러가 나지 않거든요. 이런 요상한 경우가 왜 있는지 궁금합니다. 뭐가 잘못되었을까요?

메세지는 EvariantError with message 'Invaild variant type conversion'이라고 나는군요.

try..excpet..end 문을 이용해서 에러메세지처리를 하려고하여도 에러가 잡히지 않습니다. 에러를 뿌리고 결과를 그리드에보여주긴 보여줍니다.

그냥 가지마시고요. 조언 부탁드립니다. 제가 질문을 잘 못해서 그런지, 주로 제 질문은 답이 없더군요. ^^;;;

혼자서 끙끙댑니다. 기왕이면 에러메세지 처리방법도 좀 조언해주시면 고맙겠습니다. 그럼 즐프하세요.
3  COMMENTS
  • Profile
    김주 2003.06.28 13:29
    위에 다른 님도 글귀을 적어 주셨지만...

    저같은 경우도 ADO을 사용해 프로그램을 만들었는데... 그런경우는
    보질 못했는데요...

    그리고 다른 데이타 베이스도 그렇겠지만 다이렉트로 접속한 것보다
    ODBC로 접속하여 사용하면 조금 느리죠..

    저는 BDE을 사용하지 않고 ADO을 사용 합니다..
    DBGrid는 쓰지 않고 그냥 Grid,Listview 콤퍼넌트에 검색문을 출력을 해도
    굉장이 빠르던데...

    ADO 버전과 MDAC버전을 확인 하시고 아마도 설정 부분에서 그런것 같다는
    생각이 듭니다.

    저는 초음에는 ADO땜시 무지막지 고생 했거든요...
    왼만하면 ADO는 사용하지 않는것이 ...제 판단 입니다.

    그냥 조그만한 것이면 괜찮겠지만요..

    그럼 좋은하루 델이와 함께...행복하세요..


  • Profile
    nilriri™ 2003.06.28 03:24
    샬롬~

    DBMS는 어떤거죠?

    델파이, DB, ADO(MDAC)버젼은요?



    try
       //code....
    except
       on e:exception do
       begin
          showmessage(e.message);
       end;
    end;

    위에건 무조건 발생한 에러에 대한 에러 메시지를 뿌리는 겁니다. 아주 단순 무식하게..^^;

    그리고 에러가 발생한 부분의 코드도좀 같이 볼수 있으면 좋겠군요..

    디비의 컬럼의 데이터 타입을 그리드에 표시해주면서

    데이터 타입이 맞지 않아 발생하는 에러가 아닐까요?...완전 짐작입니다...

    코드가 없으니 머라고 말하긴 힘들지만..

    즐프~

  • Profile
    빵빵빵 2003.06.28 21:25
    DBMS는 MS-SQL2000입니다. 그리고 VPN망안에 있습니다.
    ADO도 버젼이 있나요? MDAC버젼이 아마 MS-SQL2000설치하면 깔리는 그버젼인것 같습니다.

    버튼클릭시 이벤트입니다.
      try
        ADOTable1.Close;
        ADOTable1.Open;
      except
        on E:Exception do
          ShowMessage(E.Message);
      end;
      DBGrid1.DataSource := DataSource2;

    에러 검출이 안되더군요.
    같은 결과는 ADO쿼리 컴포넌트로 이용해서 오픈시키면 됩니다. 위의 버튼클릭시 이벤트도 에러를 발생하긴하나 결과가 안나오는건 아닙니다. 에러발생후 결과는 나옵니다. 그다음 이벤트부터는 에러가 안납니다. 모든 테이블에 대해서 다 그런것 같군요.

    ADO속도 문제는 좀 굼뜨는거 같습니다. 조회결과처리후에서 BDE사용보다 반응이 늦습니다. 개발자가 체감하고 굼뜬다고 할정도니 사용자는 프로그램종료를 누를지도 모릅니다. ^^:;;;; 결과화면은 팍팍뜨는데 반응이 늦다는거죠 ^^반응후 결과는 팍팍

    메세지는 EvariantError with message 'Invaild variant type conversion'이라고 나는군요.

    경험자들의 조언을 바랍니다.

    이전 답변해주신 분들께 감사드립니다.

    • 빵빵빵
    • 2003.06.28 02:04
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김주
      2003.06.28 13:29
      위에 다른 님도 글귀을 적어 주셨지만... 저같은 경우도 ADO을 사용해 프로그램을 만들었는데... 그런경...
    • nilriri™
      2003.06.28 03:24
      샬롬~ DBMS는 어떤거죠? 델파이, DB, ADO(MDAC)버젼은요? try    //code.... exc...
    • 빵빵빵
      2003.06.28 21:25
      DBMS는 MS-SQL2000입니다. 그리고 VPN망안에 있습니다. ADO도 버젼이 있나요? MDAC버젼이 아마 MS-SQL2000...
    • 이봉희
    • 2003.06.28 01:18
    • 0 COMMENTS
    • /
    • 0 LIKES
    • ^ㅡ^
      2003.06.28 20:32
      //안녕하세요 답변이 될련지 모르겠지만 db에는스트링으로 잡혀 있는것이 아니라고 했는데 엑셀로 전송할...
    • 방재웅
      2003.06.27 21:57
      해당 컴포넌트가 델파이에 등록되어 있지 않기 때문입니다. 해당 컴포넌트를 등록하세요.
    • 초짜는괴로워!
      2003.06.27 22:05
      해당 컴포넌트가 등록이 안대있어서 나는거라 하셨는데 해당 컴포넌드가 class TCommPortdriver인가여?...
    • 바보감자
      2003.06.28 00:32
      안녕하세요 언제나 초보 바보감자입니다. 콤포넌트 등록은 메뉴에 component -> install 콤포넌트 로...
    • 김성훈
    • 2003.06.27 21:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2003.07.08 07:53
      안녕하세요. 한원희입니다. 후킹같은 것은 모르겠구요, 타이머를 이용해서(1초 주기 또는 500ms 주기로...
    • 이정은
    • 2003.06.27 07:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 별볼일없는
      2003.06.27 21:26
      음냐 리포트에는 하나의 쿼리만 가능합니다. 그러니깐 SQL로 테이블을 조인하셔서 사원이름 : 사...
    • 구니
    • 2003.06.27 04:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 손상엽
    • 2003.06.27 03:44
    • 2 COMMENTS
    • /
    • 0 LIKES
    • major
      2003.06.28 03:04
      안녕하세요.. 그건 아마두 페이지 헤더나 페이지 푸터에 문제 같네요... Composite Report는 각각...
    • 손상엽
      2003.06.30 21:46
      이야.. 며칠동안 내내 고민했었는데... 답글 보고 이리저리 해보니 정말 되네요.. ^^ 순서가 중요한...
    • 남궁혁
    • 2003.06.27 03:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채태숙
      2006.05.31 00:31
      아래처럼 해보세요 저도 찾다가 해보니까 되더라구요.. <!--CodeS--> procedure TForm....
    • sky
    • 2003.06.27 02:44
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 바보감자
      2003.06.27 02:59
      안녕하세요 언제나 초보 바보감자입니다. 더운날에 코딩하시느라 수고하십니다. 다른 응용프로그램에서 ...
    • sky
      2003.06.27 03:17
      우선 답변 주셔서 감사하구요. 다른 응용프로그램에서 나는걸 체크하는게 아니구요. 내 프로그램에서 나...
    • 황돈기
      2003.06.27 23:44
      TCP socket을 쓰신다면...error event에서 error code 값에 대한 exception처리를 하구 errorcode 값을 0으...
    • 박준영
    • 2003.06.27 02:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이창영
      2003.06.27 21:33
      엑세스에서는 substring 대신 mid를 씁니다. 물론 left 도 가능하지만 substring 과 똑같은 기능이라면 m...
    • 김학진
      2003.06.27 02:58
      sql monitor 사용하세요. 모니터링 해보면 sql문장 전송되는 것이 보이는데, 그걸 긁어서 쿼리분석기나 ...
    • sky
      2003.06.27 02:56
      substring 대신 Left 를 쓰시면.. Left(JH.Hyundate, 6)
    • 최은하
    • 2003.06.27 02:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2003.06.27 03:07
      샬롬~ 어라 이상하다..ㅡㅡ; SQL에 쿼리문장만 ADD한다고 해서 데이터 셋이 자동으로 리프레쉬 되...
    • 최은하
      2003.06.27 03:27
    • 최은석
      2003.06.27 03:53
      말 그대로... insert or edit 모드가 아닌상태에서...입력, 수정 작업을 시도할때 생기져... 작업전에.. ...
    • ^ㅡ^
      2003.06.27 05:44
      // 소스 문제가 아니라 리포트프라퍼티에 보면 프린트셋팅안에 copies에 2로 설정되어 있는거 같은데요 ...
    • 하병준
    • 2003.06.27 01:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 오은경
    • 2003.06.27 01:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 2003.06.30 12:05
      먼저 답해주었던분의 상세설명을 덧붙입니다. text화일을 excel변환시에 컬럼이 나누어져야한다는게 ...
    • 김학진
      2003.06.27 02:33
      윈2000이라면 csv형태로 그냥 가져와도 되지만, 쉬운 방법으로 설명하겠습니다. 1. 엑셀로 읽어온다. (...
    • 정동문
    • 2003.06.27 01:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • yuricity
    • 2003.06.27 01:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이창영
      2003.06.27 23:01
      찾아보셨는지는 의문이네요... 아마도 예전 질답게시판에 많을겁니다... procedure TForm1.StringGrid1...
    • yuricity
      2003.06.28 00:21
      답변 감사드립니다... 님 말씀대로 제가 잘 찾아봤어야 하는 건데... ㅡ.ㅡ; 좋은하루 되시고요, 정말 ...
    • 이덕우
    • 2003.06.27 00:10
    • 0 COMMENTS
    • /
    • 0 LIKES