Q&A

  • 델파이에서 프로시저 실행시 에러
안녕하세요.
이와같은 에러에 대해서 검색을 해보니 비슷한 경우가 있었지만 해결이 안되서 질문 올립니다.
에러메세지는 다음과 같습니다.
Project AAA.exe raised exception class EDBEngineError with message ' Capability not supported.'.Process stopped. Use Step or Run to continue.

델파이소스는 다음과 같습니다.
스토어드프로시져를 돌리는 부분입니다.
먼저 질문을 올리신분처럼 저도 스토어드프로시져가 실행되는 부분의 앞과 뒤에 메세지를 만들었습니다.
procedure TFC2_NOR_044P.PC_C2T_NOR_044p;
begin
    with Strp_C4T_PM_YY_PROD_N_P do begin
        if Active then
           Close;
           ParamByName('IN_COM_ID').asstring   := Fa_getCom_id();
           ParamByName('IN_YY').asstring       := Formatdatetime('YYYY',DTP_YM.Date);
           ParamByName('IN_PUMMOK_CODE').asstring := '%';
           ParamByName('IN_OPERATOR').asstring := Fa_GetUser_No();
           showmessage('가가가');
           ExecProc;
           showmessage('나나나');
        if Trim(ParamByName('OUT_MSG').asstring) <> '' then
           PC_MsgInfo(Self, '실적공수 산출', Trim(ParamByName('OUT_MSG').asstring), True);
    end
end;
저도 그분과 마찬가지로 '가가가'는 뜨지만 '나나나'는 뜨지 않더군요.
답글에서는 프로시져에 문제가 있을거라고 해서 저도 확인을 했습니다.

다음은 스토어드프로시져입니다.
CREATE OR REPLACE PROCEDURE C4T_PM_YY_PROD_N_P
(
    IN_COM_ID             IN      CHAR,
    IN_YY                 IN      CHAR,
    IN_PUMMOK_CODE        IN      CHAR,
    IN_OPERATOR           IN      CHAR,
    OUT_MSG               OUT CHAR,
    OUT_RV                OUT INTEGER
)
IS

HOST_PUMMOK_CODE          N05.P1T_PROC_SILJUK_N.PUMMOK_CODE           %TYPE; --품목코드
HOST_SILJUK_QTY           N07.C2T_EMPMAT_LABOR_TOT_N.WORK_QTY         %TYPE; --실적수량
HOST_INWON_WORK_TIME      N07.C2T_EMPMAT_LABOR_TOT_N.WORK_QTY         %TYPE; --인원시간
HOST_INWON_LOSS_TIME      N07.C2T_EMPMAT_LABOR_TOT_N.WORK_QTY         %TYPE; --유실시간
HOST_MAN_RATE             N07.C4T_PM_YY_PROD_N.MAN_RATE               %TYPE; --실적공수

CURSOR SILJUK_CUR IS

    SELECT PUMMOK_CODE,
           NVL(SUM(INWON_WORK_TIME),0) INWON_WORK_TIME,
           NVL(SUM(INWON_LOSS_TIME),0) INWON_LOSS_TIME,
           NVL(SUM(SILJUK_QTY),0) SILJUK_QTY
    FROM   N05.P1T_PROC_SILJUK_N
    WHERE  COM_ID = IN_COM_ID
    AND    SILJUK_DATE >= IN_YY||'0101'
    AND    SILJUK_DATE <= IN_YY||'1231'
    AND    PUMMOK_CODE LIKE IN_PUMMOK_CODE
    GROUP BY PUMMOK_CODE
    ORDER BY PUMMOK_CODE ;
  
BEGIN
    OUT_MSG      := '';
    OUT_RV       := -100001;

    BEGIN
        DELETE  N07.C4T_PM_YY_PROD_N
        WHERE   COM_ID = IN_COM_ID
        AND     YY     = IN_YY
        AND     PUMMOK_CODE LIKE IN_PUMMOK_CODE;
    END;

    OPEN SILJUK_CUR;
    LOOP
        FETCH   SILJUK_CUR  
        INTO    HOST_PUMMOK_CODE,
                HOST_INWON_WORK_TIME,
                HOST_INWON_LOSS_TIME,
                HOST_SILJUK_QTY;
        EXIT    WHEN    SILJUK_CUR%NOTFOUND;

        IF HOST_SILJUK_QTY = 0 THEN
           HOST_MAN_RATE := 0;
        ELSE
           HOST_MAN_RATE := ROUND(((HOST_INWON_WORK_TIME - HOST_INWON_LOSS_TIME)/60)/HOST_SILJUK_QTY, 5);
        END IF;

        INSERT  INTO    N07.C4T_PM_YY_PROD_N(
                COM_ID,
                YY,
                PUMMOK_CODE,
                OP_DATE,
                OPERATOR,
                MAN_RATE
                )
        VALUES (IN_COM_ID,
                IN_YY,
                HOST_PUMMOK_CODE,
                sysdate,
                IN_OPERATOR,
                HOST_MAN_RATE
                );
    END LOOP;

    IF SILJUK_CUR%ROWCOUNT = 0 THEN
       OUT_MSG := HOST_PUMMOK_CODE||' 은 해당년도에 생산실적이 없습니다.';
       OUT_RV  := -100000;
    ELSE
       OUT_MSG := '처리를 완료하였습니다!';
    END IF;

    COMMIT;

END C4T_PM_YY_PROD_N_P;

이것을 SQLPlus에서 실행하면 문제없이 처리가 됩니다.
글이 너무 길어서 죄송합니다.^^;
도움되는 의견 부탁드립니다.
4  COMMENTS
  • Profile
    황준동 2005.07.15 22:53

    안녕하세요..

    도움이 되실지 모르겠지만 제가 생각하기에는 호환성을 지원하지 않는다는 에러 메시지인거 같네요.

    즉, 타입 맞지 않는다는 것 같습니다.

    오브젝트 인스펙터에서 Params에서 클릭 하셔서 Editing ?????.Params 창에서

    각각의 파라메터를 선택하신 다음에 DataType(알맞은 데이터형), PramType(ptInput / ptOutput) 이런거 설정하시고 다시 한번 해 보시는게 어떨까 싶네요.

    제가 보기엔 다 맞게 하신거 같은데 아마도 이런 설정 때문이 아닌가 싶네요...

    그럼...




  • Profile
    이복만 2005.07.18 19:11
    말씀대로 기본적인 설정을 확인하던 중에 다른 부분에서 찾았습니다. ^^;
    사소한 부분이었지만 제대로 확인을 못하였습니다.
    정성스런 답변을 해 주신 두분께 모라 말씀드릴수가 없네요.
    감사합니다. *^^*

  • Profile
    nilriri™ 2005.07.15 07:16

              try
                 close;
                 Sql.Text := s ;
                 params.clear;   <-- 순서를 바꿔 보시구요..^^;  

    제가 봐서 ADO가 아니고 BDE 같습니다.

    파라미터 지정은 아래처럼 해보시구요..^^;

           Query1.Params.ParamByName('ParamName').AsInteger



    ADO에는 저런 메소드가 없거든요..ㅡㅡ;

    with ADOComponet...  do
    begin
            
          .....

                   ProcedureName := 'sp_getInsaOfSosuk';
                   Parameters.Clear;
                   Parameters.createparameter(':AKey',ftInteger,pdInput,10, li_Key);

         ....

    end;

    ADO같은 경우 이렇게 하면 에러 없이 잘 처리 되더군요..






    다른질문에 답변했던 내용인데요...

    createprameter를 사요해서서 해보세요..^^;

    exception 발생시 오류메시지도 정확하게 다시 한번 확인해 보시구요..



  • Profile
    이복만 2005.07.15 21:19
    좋은 의견 감사드립니다.
    먼저 저의 환경에 대한 설명이 부족했던것 같습니다.
    OS : 윈XP
    DB : Oracle9i
    Delphi : 5
    그리고 말씀대로 BDE를 사용하고 있습니다.
    또한 Query1.Params.ParamByName('ParamName').AsInteger 로 수정해보라고 하셔서
    기존의      
    ParamByName('IN_COM_ID').asstring   := Fa_getCom_id();
    ParamByName('IN_YY').asstring       := Formatdatetime('YYYY',DTP_YM.Date);
    ParamByName('IN_PUMMOK_CODE').asstring := '%';
    ParamByName('IN_OPERATOR').asstring := Fa_GetUser_No();
    를            
    Strp_C4T_PM_YY_PROD_N_P.Params.ParamByName('IN_COM_ID').asstring   := Fa_getCom_id();
    Strp_C4T_PM_YY_PROD_N_P.Params.ParamByName('IN_YY').asstring       := Formatdatetime('YYYY',DTP_YM.Date);
    Strp_C4T_PM_YY_PROD_N_P.Params.ParamByName('IN_PUMMOK_CODE').asstring := '%';
    Strp_C4T_PM_YY_PROD_N_P.Params.ParamByName('IN_OPERATOR').asstring := Fa_GetUser_No();
    로 수정했지만 에러는 잡히지가 않았습니다.
    다시 한 번 의견 감사드립니다. *^^*


    • 심재용
      2005.07.20 19:51
      MemStream.position := 0;  <= 이 문장을 추가해 보세요. MemStream.ReadBuffer(...);
    • 하얀까마귀
      2005.07.20 02:12
      안녕하세요 하얀까마귀 입니다. 포인트 부분을 잘못쓰신것으로 보이네요.. Pointer형은 4byte 입니다...
    • 대박
    • 2005.07.19 22:24
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 서해근
    • 2005.07.19 22:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.07.19 23:10
      챠트의 엑수축의 범위를 지정하면 됩니다.(x에 대한 min,max) 데이타가 많으면 꽤 느립니다. 엑수축 ...
    • 서해근
      2005.07.19 23:38
      정말 감사합니다 부자되세요 ^^
    • 최석종
    • 2005.07.19 04:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 주웰
      2005.07.19 22:10
      질문이 참 난해(!?) 하군요... 레포트를 그런식으로 뽑고 싶으신건지.. 아니면 어플리케이션에서 셀에 입...
    • 이강석
    • 2005.07.19 02:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2005.07.22 19:29
      안녕하세요. 타락임다.. MIDAS 에는 서버에서 데이터셋의 일부만 가져오는 기능이 있어요.. 가령 만...
    • 하얀까마귀
      2005.07.19 09:15
      안녕하세요 하얀까마귀 입니다. 아무래도 데이타 건수에 관련된 거라면 두가지 정도 생각이 드네요. ...
    • KKAW
    • 2005.07.19 01:14
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김종화
      2005.07.19 01:44
      MessageDlg('등록되지 않은 회원입니다. 등록하시겠습니까?', mtInformation, [mbYesNoCancel], ...
    • KKAW
      2005.07.20 00:53
      [mbYes, mbNo] 이렇게 하니까 에러 안뜨는 군요... 그런데 Yes를 선택할 경우랑 No를 선택할 경우 ...
    • 김종화
      2005.07.20 01:59
      아래와 같이 하시면 됩니다.. ^^;;     if MessageDlg('등록되지 않은 회원입니...
    • 강철
    • 2005.07.16 23:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 심재용
      2005.07.18 04:51
      파라메터의 종류가 다르기 때문입니다. IEXPLORE.EXE <파일명> 이러한 규칙에 의해 ShellExecu...
    • 유효근
    • 2005.07.16 13:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유효근
      2005.07.16 13:23
      자문자답을 하네요.. ItemIndex 라는게 있군요..
    • 이승근
    • 2005.07.16 12:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2005.07.19 18:16
      안녕하세요... 우선 그래프를 프로그램으로 구현하실려면 일단 TChart의 기본 개념이 필요할 것 같군요....
    • 이병협
    • 2005.07.16 04:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이병협
      2005.07.22 22:36
      <!--CodeS-->, Procedure TfrmAssetGather.udpDBCompact; var   ole:variant;  &...
    • kivalan
    • 2005.07.16 00:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.16 01:02
      안녕하세요. 최용일입니다. 날조된 MAC | IP 의 패켓을 보내는 방법이 가능합니다. 받는게 문제지... ...
    • kivalan
      2005.07.16 05:39
      보낸다 해도 받는게 젤 어렵겠네요. 더미허브 안에서 같이 있다면.. 그쪽으로 가는 패킷을 잡아서 통신...
    • 이복만
    • 2005.07.15 05:27
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      2005.07.15 22:53
      안녕하세요.. 도움이 되실지 모르겠지만 제가 생각하기에는 호환성을 지원하지 않는다는 에러 메시지...
    • 이복만
      2005.07.18 19:11
      말씀대로 기본적인 설정을 확인하던 중에 다른 부분에서 찾았습니다. ^^; 사소한 부분이었지만 제대로 확...
    • nilriri™
      2005.07.15 07:16
                try      &nb...
    • 이복만
      2005.07.15 21:19
      좋은 의견 감사드립니다. 먼저 저의 환경에 대한 설명이 부족했던것 같습니다. OS : 윈XP DB : Oracle9i...
    • 배정은
    • 2005.07.15 03:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 데빠이
      2005.07.15 04:56
      팁/테크란에 보시면 "좋은 나무님"이 올려놓으신 "사용자가 DBGrid의 Column순서,폭을 변경시 그 값을 저장...
    • 배정은
      2005.07.16 21:34
      감사합니다.
    • TeamB
      2005.07.15 04:43
      dpk 는 패키지 파일이라고 하며, 패키지 파일과 함께 배포되지 않을수도 있습니다. 패키지파일을 새로...
    • 데빠이
      2005.07.18 21:17
      우선 답변해주신 분께 감사하구요...^^ 제가 함 해보니까요~ 잘못하고 있는지는 모르겠으나...^^; my.i...
    • TeamB
      2005.07.15 03:56
      MySQL 4.x (혹은 4.1) 이후부터는 Character set 말고 Collation 라는게 추가 되었습니다. 아직 4.x이후...
    • 데빠이
      2005.07.15 04:17
      적어주신 url 은 이미 한번 봤던곳인데 제가 못찾고 지나쳤나보네요... 워낙 죄다 영어라~ 흐흐흐 다시 한...
    • TeamB
      2005.07.15 04:35
      Character set 설정하는것과 동일 합니다. default-collation=euckr_korean_ci 이렇게 my.ini 에 ...
    • 데빠이
      2005.07.15 04:51
    • 유효근
      2005.07.14 23:49
      안녕하세요.. 제가 알기로는 상업적 용도로 쓰면 안되는걸로 알고 있습니다. 고로 기업에서는 별도로...