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

FireBird 팁&트릭
[18] 파이어 버드 입문 팁
GomSun2 [vhrvnd723] 8123 읽음    2006-08-02 18:53
Intebase와 Firebird 사용간 작업을 정리해 놓은 내용에 주석을 덧데어 글을 남김니다.
아무조록 작은 도움이 되었으면 좋겠네요.

차례

    0 환경
    1 자료

        1.1 링크
        1.2 서적
        1.3 Tool

    2 사용


0 환경 #

    * Firebird 2.0 Rc2 / Intebase 7.5

1 자료 #
1.1 링크 #

    * 파이어버드 포럼 ( http://firebird.borlandforum.com/ )  - 국내에서 가장 활발한 포럼입니다. 많은 제야의 고수님들이 도움을 줍니다.
    * 야옹님 홈페이지 ( http://www.cool4u.co.kr/v1/ ) - Firebird 1.5 완벽 활용 가이드를 집필한 박정훈님의 홈페이지 입니다.
    * 데이타 베이스 사랑넷 ( http://database.sarang.net/ )  -  Firebird가 카테고리에 추가 되었습니다.

1.2 서적 #

    * Firebird 1.5 완벽 활용 가이드 / 한스컨텐츠 / 박정훈  - 개인적으로 큰 도움을 얻었던 책입니다. 국내 유일의 Firebird / Interbase 서적. 볼랜드 포럼에서 이벤트도 진행중입니다. ㅡ0-;;

1.3 Tool #

    * IBExpert  - MS-SQL의 엔터프라이즈 관리자 + 쿼리 분석기 같은 도구 입니다.
      Ctrl + F12 - 스크립트 실행창
      F12 - 쿼리 분석기
      F9 - 실행

2 사용 #

    * Create Shadow - 전 백업 대신 쉐도우를 만들어 두었습니다. 쉐도우는 원본 DB파일이 깨지면 자동으로 쉐도우를 사용한다고 합니다. 아직 초기라 테스는 ... 안했습니다. ㅡㅡ;;

      ------------------------------------------------------------------------------------------------------------------------------
      CREATE SHADOW 1 AUTO 'C:\Documents and Settings\Administrator\My Documents\FireBird_BackUp\EA.shd';
      ------------------------------------------------------------------------------------------------------------------------------

    * Create Boolean - Boolean 타입이 존재 하지 않아 만들어 사용해야 합니다.

      ------------------------------------------------------------------------------------------------------------------------------
      CREATE DOMAIN BOOLEAN AS CHAR
      DEFAULT 'F' NOT NULL
      CHECK (VALUE IN ('T', 'F'))
      ------------------------------------------------------------------------------------------------------------------------------

    * Create Table - 테이블 생성은 크게 다르지 않습니다. 다만 MS-SQL처럼 자동증가 타입을 지원하지 않습니다. 그리하여 아래와 같이 트리거를 생성해서 Insert 시점에 트리거가 증가값을 넣어 주어야 합니다.

      ------------------------------------------------------------------------------------------------------------------------------
      CREATE TABLE W_Table
      (

          W_SEQ     INTEGER         NOT NULL
      ,   W_DT      VARCHAR(14)     NOT NULL
      ,   W_Val     NUMERIC(8,3)    NOT NULL

      ,   PRIMARY KEY (WE_SEQ, WE_DT)

      );

      CREATE  GENERATOR   WEATHER_RAW_SEQ_GEN;
      SET     GENERATOR   WEATHER_RAW_SEQ_GEN TO  0;

      CREATE  TRIGGER     SET_WEATHER_RAW_SEQ FOR WEATHER_RAW
      BEFORE  INSERT  AS
      BEGIN
          NEW.WEATHER_SEQ = GEN_ID(WEATHER_RAW_SEQ_GEN, 1);
      END;
      ------------------------------------------------------------------------------------------------------------------------------

    * Create SP 1 - SP사용간 트리거를 사용하는 열은 비워 놓고 작업을 진행합니다.

      ------------------------------------------------------------------------------------------------------------------------------
      SET TERM ^ ;
      CREATE OR ALTER PROCEDURE INSERT_W (
          S_Dt      VARCHAR(14),
          N_Val      NUMERIC(8,3))
      BEGIN
          /* RAW */
          INSERT INTO W_Table (W_DT, W_Val)
          VALUES (:S_Dt, :N_Val);
      END^

      SET TERM ; ^
      ------------------------------------------------------------------------------------------------------------------------------

    * Create SP 2
      - 결과물을 가져오기를 원하면 Suspend를 넣어줘야 합니다.
      - 아래 SP에 FOR - Select 문이 두개 있는데 SP를 수행하면 두개 쿼리 문의 결과가 세로 방향으로 붙어 나옵니다.

      ------------------------------------------------------------------------------------------------------------------------------
      SET TERM ^ ;

      CREATE OR ALTER PROCEDURE SELECT_R (
          S_DT VARCHAR(12))
      RETURNS (
          N_Val NUMERIC(8,3))
      AS
      BEGIN
              FOR
                  SELECT  Max(W_Val) From W_Table Where W_Dt = :S_DT
                  Into :N_Val
              DO  BEGIN
                      SUSPEND;
                  END

              FOR
                  SELECT  Sum(W_Val) From W_Table Where W_Dt = :S_DT           
                  Into :N_Val
              DO  BEGIN
                      SUSPEND;
                  END
      END^

      SET TERM ; ^
      ------------------------------------------------------------------------------------------------------------------------------



많이 미숙합니다. 내용중 잘못되거나 수정해야할 부분이 있으면 가감없는 덧글 부탁드리겠습니다.

+ -

관련 글 리스트
18 파이어 버드 입문 팁 GomSun2 8123 2006/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.