Q&A

  • ADOStoredProc사용시 에러!!
안녕하세요!! 이곳에서 유익한 정보를 많이 얻고활용하고 있는 사용자입니다! BDE를 이용한 프로그래밍을 하다 ADO를 이용해서 프로그래맹하고자 하는데 ADOQuery는 연결이 잘되는데 ADOStoredProc를 연결하고자하면 "ADOStoredProc1:CommandText does not return a result set" 이런 에러가 생기네요 ADOConnection 컴퍼넌트의 ConnectionString에 SQL연경설정을 하고 ADOStoredProc 컴퍼넌트에 ADOConnection을 연결하고 SQL에서 만든 저장프로시저를 연결했습니다. 프로그램실행시키면 위의 에러메시지가 발생하네요!! 이곳을 아무리 찾고 다른 몇몇사이트를 뒤져보아도 해결책을 찾지못해서 이렇게 질문올립니다! 바쁘시더라도 여러 의견부탁드립니다!! -- 좋은 하루되세요!!
3  COMMENTS
  • Profile
    nilriri™ 2003.03.29 02:40
    디비에서 결과값이 하나도 리턴되지 않았다는 에러네요..

    스토어드 프로시져에서 결과값이 리턴되는지 확인해 보시구요..

    정확한 답변을 원하시면..
    DBMS정보와 사용하신 프로시져 소스, 인수등 좀더 구체적으로 질문을..
    원본 소스를 그대로 올려 달라는건 아니구요..대충 이런 형식이다 라는 식으로
    템플릿정도는 작성해 주셔야..ㅡㅡ;

    그럼..

  • Profile
    최진술 2003.03.29 04:43
    우선 관심을 보여주셔서 고맙습니다!
    DB는 SQL7.0입니다! 물론 저장프로시저는 DB내에서는 잘수행되고 이전에
    BDE를 이용한 프로그램에서 사용하던 프로시저입니다!
    아래에 델파이에서 호출하는 코딩부분과  DB에서 저장프로시저 생성하는
    부분의 소스를 간략히 올립니다!
    바쁘시더라도 의견부탁드립니다!
    ( 이 프로그램자체는 BDE환경에서 잘운영되던 프로그램입니다! 데이타 접속방식만 BDE환경에서 ADO환경으로 바꾸고자 하는 것입니다!)

    ==>델파이에서 호출하는 부분

      datamodule2.adostoredproc1.active:=false;
      if datamodule2.adostoredproc1.PrePared = true then
         datamodule2.adostoredproc1.Prepared:=false;

      datamodule2.adostoredproc1.prepared:=true;

      if team_com.itemindex=0 then
      begin
        datamodule2.adostoredproc1.parameters.parambyname('@team').value:='31';
      end;
      if team_com.itemindex=1 then
      begin
        datamodule2.adostoredproc1.parameters.parambyname('@team').value:='32';
      end;

      datamodule2.adostoredproc1.parameters.parambyname('@cust').value:=cust_v;//
      datamodule2.adostoredproc1.parameters.parambyname('@yy').value:=yy_com.text;//조회년
      datamodule2.adostoredproc1.parameters.parambyname('@mm').value:=mm_com.text;//조회월

      datamodule2.adostoredproc1.open;

    퀵레포트에서 QRDBTEXT컴포넌트를 이용해서 데이타내용을
    출력합니다!

    ==> SQL7.0 에서 프로시저 생성하는 부분

    create proc ups_roy001C
    @team   char(2),
    @cust   char(3),
    @yy        char(4),
    @mm        char(2)

    as


    CREATE TABLE #ROY000_Z
    (
    GBN   CHAR(1),
    CUST  CHAR(3),
    YY    CHAR(4),
    MM    CHAR(2),
    DD    CHAR(2),
    VNO   CHAR(4),
    JWQTY  NUMERIC(7), --정상전월이월
    JWAMT  NUMERIC(12),--        금액
    JIQTY  NUMERIC(7), --정상입고
    JIAMT  NUMERIC(12),
    JIGMT  NUMERIC(12),
    JBQTY  NUMERIC(7), --정상반품
    JBAMT  NUMERIC(12),
    JBGMT  NUMERIC(12),
    JSQTY  NUMERIC(7), --정상판매
    JSAMT  NUMERIC(12),
    HSQTY  NUMERIC(7), --행사판매
    HSAMT  NUMERIC(12),
    JJQTY  NUMERIC(7), --정상잔고
    JJAMT  NUMERIC(12),
    GWQTY  NUMERIC(7), --균일이월
    GWAMT  NUMERIC(12),
    GIQTY  NUMERIC(7), --균일입고
    GIAMT  NUMERIC(12),
    GIGMT  NUMERIC(12),
    GBQTY  NUMERIC(7), --균일반품
    GBAMT  NUMERIC(12),
    GBGMT  NUMERIC(12),
    GSQTY  NUMERIC(7), --균일판매
    GSAMT  NUMERIC(12),
    GJQTY  NUMERIC(7), --균일잔고
    GJAMT  NUMERIC(12),
    TSQTY  NUMERIC(8), --판매종합
    TSAMT  NUMERIC(12),
    TJQTY  NUMERIC(8), --잔고계
    TJAMT  NUMERIC(12)
    )


    /*

    여러테이블을 조인해서 최종테이블을 생성하는 부분


    */


    --최종테이블 RETURN
    SELECT GBN,CUST,YY,MM,DD,VNO,
           SUM(JWQTY) AS JWQTY,SUM(JWAMT) AS JWAMT,SUM(JIQTY)
           AS JIQTY,SUM(JIAMT) AS JIAMT,SUM(JIGMT) AS JIGMT,
           SUM(JBQTY) AS JBQTY,SUM(JBAMT) AS JBAMT,SUM(JBGMT) AS JBGMT,
           SUM(JSQTY) AS JSQTY,SUM(JSAMT) AS JSAMT,
           SUM(HSQTY) AS HSQTY,SUM(HSAMT) AS HSAMT,
           SUM(JJQTY) AS JJQTY,SUM(JJAMT) AS JJAMT,
           SUM(GWQTY) AS GWQTY,SUM(GWAMT) AS GWAMT,
           SUM(GIQTY) AS GIQTY,SUM(GIAMT) AS GIAMT,
           SUM(GIGMT) AS GIGMT,
           SUM(GBQTY) AS GBQTY,SUM(GBAMT) AS GBAMT,
           SUM(GBGMT) AS GBGMT,SUM(GSQTY) AS GSQTY,SUM(GSAMT) AS GSAMT,
           SUM(GJQTY) AS GJQTY,SUM(GJAMT) AS GJAMT,
           SUM(TSQTY) AS TSQTY,SUM(TSAMT) AS TSAMT,
           SUM(TJQTY) AS TJQTY,SUM(TJAMT) AS TJAMT
    FROM #ROY000_Z
    GROUP BY GBN,CUST,YY,MM,DD,VNO


    return



  • Profile
    nilriri™ 2003.03.30 04:50
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    CREATE  PROCEDURE SP_TEST
    AS
    /*
    결과값이 없는 프로시져
    */
    RETURN
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    다음과같은 프로시져를 생성하고 테스트 했을때 첨부와 같은 에러가 발생하였습니다.

    프로시져를 다시한번 점검해 보시기 바랍니다.

    결과 레코드셋이 리턴되지 않는 다는 에러입니다.

    그럼..