Q&A

  • Excel 연동 중 Error 발생시 Process 강제 종료 방법
안녕하세요? Delphi에서 Excel로 보고서를 출력하는 작업을 하고 있으며, Error가 발생하지 않을 경우에는 큰 문제가 없이 보고서가 잘 출력되고 있습니다.

만약의 경우(Error) 발생할 때를 가정하여 일부러 Error를 발생시켜 보았는데요... Process가 여전히 종료되지 않고 남아 있더군요.



이렇게 Excel과 같이 외부 프로그램을 연동할 때, Error와 같은 상황이 발생할 경우 Process를 강제 종료하는 방법은 없습니까?





2  COMMENTS
  • Profile
    한하눌 2000.10.18 19:41
    이해경 wrote:

    > 안녕하세요? Delphi에서 Excel로 보고서를 출력하는 작업을 하고 있으며, Error가 발생하지 않을 경우에는 큰 문제가 없이 보고서가 잘 출력되고 있습니다.

    > 만약의 경우(Error) 발생할 때를 가정하여 일부러 Error를 발생시켜 보았는데요... Process가 여전히 종료되지 않고 남아 있더군요.

    >

    > 이렇게 Excel과 같이 외부 프로그램을 연동할 때, Error와 같은 상황이 발생할 경우 Process를 강제 종료하는 방법은 없습니까?

    >

    >



    방법은 2가지가 있습니다.

    첫번째는



    EXCEL := CreateOLEObject('EXCEL.APPLICATION');



    EXCEL.visible := true;

    위와 같이 전송완료 전에 미리 excel을 열어두면 에러가 발생해도 excel프로그램이

    보이니까 그냥 종료하면 되구요



    두번째는

    var

    EXCEL : variant;

    begin

    // 자료유무검사 없으면 exit

    try

    EXCEL := CreateOLEObject('EXCEL.APPLICATION');

    EXCEL.WORKBOOKS.ADD;

    // 자료전송

    :

    // 자료전송

    EXCEL.Visible := True;

    except

    if NOT VarIsEmpty(EXCEL) then

    EXCEL.Quit;

    end;

    end;





  • Profile
    이해경 2000.10.18 20:45
    답변 감사합니다. 그렇게 하니까 Process는 종료가 되었습니다.

    하지만 Process 종료시 저장 여부를 물어보는 것이 귀찮더군요.

    그래서 한 줄 더 추가했습니다.



    except

    if NOT VarIsEmpty(EXCEL) then

    begin

    EXCEL.DisplayAlerts := False;

    EXCEL.Quit;

    end;

    end;





    전에 제가 사용한 방법은 아래와 같은데, 생각처럼 되지 않더군요.



    except

    On EOleSysError Do EXCEL.Quit;

    end;





    • 이성훈
      2000.10.25 02:32
      초보개발자 wrote: > 공장자동화 라인에서 사용하는 컴이 도스용인데..여기에 델파이5.0으로 > 만든 프로...
    • 초보자
    • 2000.10.18 20:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.10.19 00:18
      디테일밴드가 한장을 넘어가면 그런 일이 생기기도 합니다. 디테일밴드를 줄여보세요. 즐프하세여~ ^-^ ...
    • 호야
    • 2000.10.18 19:42
    • 0 COMMENTS
    • /
    • 0 LIKES
    • raeganja
    • 2000.10.18 19:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.10.18 20:01
      자동증가 있는데염. 파라독스라면 FieldType에 AutoInc가 있구요..... MS-SQL은 프라이머리키로 설정하시...
    • 초보자
    • 2000.10.18 19:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2000.10.18 21:48
      데이타가 보이지 않는다는것이 무슨 의미인지요? 설정을 했는데.... 해당 데이타가 DBLookupcombobox에 나...
    • 초보자
      2000.10.18 22:20
      dblookupcombobox에 설정을 다해주면 데이타가 주욱 나오잖아여,, 거기서 하나를 선택하면 내가 선택한게 ...
    • 임성룡
    • 2000.10.18 19:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김정
      2000.10.18 19:35
      안녕하세요? 고드름 김정입니다. 패키지 프로젝트를 여시고, 해당 유닛을 제거하시고 다시 인스톨하시...
    • 김정
      2000.10.18 19:34
      안녕하세요? 고드름 김정입니다. Video for windows API 중에서 capGetDriverDescription() 라는 함...
    • 한승구
      2000.10.19 04:37
      김정 wrote: > 안녕하세요? > 고드름 김정입니다. > > Video for windows API 중에서 > > capGetDr...
    • 김정
      2000.10.19 06:34
      안녕하세요? 고드름 김정입니다. 제가 선언부를 적지 않았더군요. 이렇게 바꾸세요. 그럼. var nTem...
    • 한승구
      2000.10.19 19:45
      김정 wrote: > 안녕하세요? > 고드름 김정입니다. > > 제가 선언부를 적지 않았더군요. 이렇게 바꾸세...
    • 청강생
    • 2000.10.18 18:48
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 한하눌
      2000.10.18 19:05
      청강생 wrote: > > Stringgird의 data를 Excel로 변환할 때 > 문자열 지정을 하지 않으면 전체가 숫자...
    • 청강생
      2000.10.18 20:23
      한하눌 wrote: > 청강생 wrote: > > > > Stringgird의 data를 Excel로 변환할 때 > > 문자열 지정을 ...
    • 한하눌
      2000.10.19 06:52
      청강생 wrote: > 한하눌 wrote: > > 청강생 wrote: > > > > > > Stringgird의 data를 Excel로 변환할 ...
    • 청강생
      2000.10.20 17:33
      한하눌 wrote: > 청강생 wrote: > > 한하눌 wrote: > > > 청강생 wrote: > > > > > > > > Stringgird...
    • parkisu
      2000.10.19 11:47
    • cell
      2000.10.19 02:05
    • 임형호
      2000.10.18 18:58
    • 2000.10.18 19:35
    • 한하눌
      2000.10.18 19:49
    • 2000.10.18 20:02
    • 임형호
      2000.10.18 21:47
    • 이해경
    • 2000.10.18 17:44
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 한하눌
      2000.10.18 19:41
      이해경 wrote: > 안녕하세요? Delphi에서 Excel로 보고서를 출력하는 작업을 하고 있으며, Error가 발생하...
    • 이해경
      2000.10.18 20:45
      답변 감사합니다. 그렇게 하니까 Process는 종료가 되었습니다. 하지만 Process 종료시 저장 여부를 물어...
    • 델초
    • 2000.10.18 13:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • parkisu
      2000.10.18 16:27
      폼이 메모리상에서 완전히 제거되지 않은 것 같은데요. FAddForm의 OnClose이벤트에 FAddForm:= nil...
    • 델초
      2000.10.18 22:13
      parkisu wrote: > 폼이 메모리상에서 완전히 제거되지 않은 것 같은데요. > FAddForm의 OnClose이벤트에 ...
    • parkisu
      2000.10.18 16:20
      MS엑세스같은 것들이 그런 프로그램입니다. 아마도 C나 C++로 만들어진 프로그램들에서 주로 그런 것 같아...
    • 2000.10.18 18:15
      http://www.delphi.co.kr/cgi-bin/cwb/CrazyWWWBoard.cgi?db=freetalk&mode=download&num=3290&file=Projec...
    • 김경한
    • 2000.10.18 11:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.10.18 18:54
      음.... 잘 모르지만 한자 적어봅니다. ^-^; 디비의 자료를 읽어오는 방법이 BDE세팅이나 ODBC설정 뿐일...
    • 권영길
      2000.10.18 11:29
      "Provider=SQLOLEDB;Connect Timeout=7;SERVER=MYSERVER;UID=MYUSER;PWD=MYPASS;DATABASE=MYDB" 이런식이...
    • psunk
    • 2000.10.18 06:54
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김정
      2000.10.18 08:18
      안녕하세요? 고드름 김정입니다. Type Library에서 속성을 만드신 후, (데이터타입을 결정하고 ...) U...
    • psunk
      2000.10.18 08:48
      답변 감사합니다. Type Library 에는 등록이 모두 되어있습니다. 그런데도 액티브 폼에서 그 프로퍼티를 ...
    • 김정
      2000.10.18 19:15
      안녕하세요? 고드름 김정입니다. 말씀하신 것까지는 맞습니다. 하지만 Type Library에서 만든 것은 In...
    • 허준
      2000.10.18 19:06
      windows 2000 Professional에는 SQL7.0 서버를 깔수가 없습니다. windows 2000 Professional은 NT WORKSTA...
    • 인디안
    • 2000.10.18 04:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김정
      2000.10.18 08:20
      안녕하세요? 고드름 김정입니다. 질문하신 내용이, 델에서 GIF저장을 하셨다는 것인지 저장된 것을 보...