FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[1562] FireBird 횡설수설
아폴론 [apollon] 1578 읽음    2005-09-22 23:02
불새!  남들이 불새라고 한다. 냐옹군이 누군지모르지만 불닭 이라고 한다.
오라클 사용 하다가  팩케지하나 만들어 보려고 해서 FireBird를 다뤄보게 되었다.
테이블 생성, 기본적인 SQL문 등이모두 낮설다.

차근차근 익혀서 Data의 입력,수정,삭제 조회 까지는 어렵지(?) 않게 왔다.
이제 실적조회 폼들을 많이 만들어야 한다.

팀별실적, 거래처별 실적...등에서
건별내용, 중간계, 또중간계, 합계등을 구하기 위해서는 인라인뷰(From 절 아래 Select문)가 절대적으로
필요한데 이 FireBird는 지원하지 않는단다.

여기저기 알아본 결과 "스토어드 프로시져" 로 하면 된단다.
그래서 또 끙끙대며 공부해서 간단한 프로시져를 작성하게 되었다.
흐뭇해 했는데....
좀더 복잡한 실적을 조회 해 내기 위해서는  프로시져 내에 where 절 아래 if 문을 사용 할 수 있다면
아주 훌룡한 프로시져를 작성 할 수 있을것 같았다.
조회 조건별로 if 문을 사용해서 만족 할 수 있을 것이다.

그러나 나의 실력으로는 되지를 않는다.
이틀째 방법을 찾아 헤매어도 안된다.흐미...
결국 조회 후 프로그램으로 루프를 돌려 임시 테이블 만들어 저장해서 보여주는 노가다를 해야 하는가?
이 방법은 비 능율적이고 시간을 많이 소비하게 하는데....
정녕 이 방법 밖에 없는 것인가?

CREATE PROCEDURE SEL_TR140T_500
(  slet VARCHAR(1),
    stdt varchar(10),
    endt varchar(10)
)
RETURNS
(
    생략..
)
AS
begin
   for
     select
       ..생략..
     from tr140t a        
     if (:selt = '1')  then  ======> 여기서는 if 문을 넣을 수 없나보다
         where a.T_ilno <> ''
     if (:selt = '2') then
         where a.T_hmcd <> ''
   into ..생략..
  do
  suspend;
end

조위에 if 문을 넣을 수 있다면 루프문을 돌리는 노가다는 하지 않아도 될텐데...
조회조건이 하나 라면 프로시져를 두개 만들면 될것이나 조건이 여러개면  프로시져를 나누는 것으로는
답이 될 수 없다.

자~  이제 어쩐다?  노가다?
FireBird 2.0 이 출시될때를 기다린다?

+ -

관련 글 리스트
1562 FireBird 횡설수설 아폴론 1578 2005/09/22
1565     Re:FireBird 횡설수설 박성배 1226 2005/09/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.