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

FireBird Q&A
[661] Re:도와주세요. 인터베이스에서 트리거를 생성하려하는데 에러가 납니다.
TK [] 1877 읽음    2003-03-22 21:43
ㅡㅡ;
'SELECT MAX(CD) FROM BSMASTER INTO :MAX_NUM;
이건 최고고값을 원한는 거고요 그쵸
'IF (MAX_NUM IS NULL) THEN MAX_NUM=1; 이건
처음 일때  1으로 변환해라
이구요.
그럼
위에 max 값이 중복들어갈 상황이네요..
항상 마지막값이 들어가죠

SELECT MAX(CD)+1 FROM BSMASTER INTO :MAX_NUM;
  이거 +1 고려좀


김태환 님이 쓰신 글 :
: 인터베이스에서 트리거를 IBConsole이 아닌 동적으로 SQL문으로 생성하려하는데 에러가 납니다. 아래의 두 가지 다 에러가 나는군요.
:
: 첫번째 시도
: IBSQL.Close; IBSQL.SQL.Clear;
: IBSQL.SQL.Add('SET TERM!!;');
: IBSQL.SQL.Add('CREATE TRIGGER INC_BCD FOR BSMASTER ACTIVE BEFORE INSERT POSITION 0');
: IBSQL.SQL.Add('AS');
: IBSQL.SQL.ADD('DECLARE VARIABLE MAX_NUM INTEGER;');
: IBSQL.SQL.ADD('BEGIN');
: IBSQL.SQL.ADD('SELECT MAX(CD) FROM BSMASTER INTO :MAX_NUM;');
: IBSQL.SQL.ADD('IF (MAX_NUM IS NULL) THEN MAX_NUM=1;');
: IBSQL.SQL.ADD('NEW.CD=MAX_NUM;');
: IBSQL.SQL.Add('END!!');
: IBSQL.SQL.Add('SET TERM;!!');
: IBSQL.ExecQuery;
:
:
: 두번째 시도
:  IBSQL.Close; IBSQL.SQL.Clear;
: // IBSQL.SQL.Add('SET TERM!!;');
:  IBSQL.SQL.Add('CREATE TRIGGER INC_BCD FOR BSMASTER ACTIVE BEFORE INSERT POSITION 0');
:  IBSQL.SQL.Add('AS');
:  IBSQL.SQL.ADD('DECLARE VARIABLE MAX_NUM INTEGER;');
:  IBSQL.SQL.ADD('BEGIN');
:  IBSQL.SQL.ADD('SELECT MAX(CD) FROM BSMASTER INTO :MAX_NUM;');
:  IBSQL.SQL.ADD('IF (MAX_NUM IS NULL) THEN MAX_NUM=1;');
:  IBSQL.SQL.ADD('NEW.CD=MAX_NUM;');
:  IBSQL.SQL.Add('END');            //IBSQL.SQL.Add('END!!');
: // IBSQL.SQL.Add('SET TERM;!!');
:  IBSQL.ExecQuery;
:
: 어린아이 가나다라 가르키는셈 치시고 아시는 분께서는 도와주시면 고맙겠습니다.
:

+ -

관련 글 리스트
643 도와주세요. 인터베이스에서 트리거를 생성하려하는데 에러가 납니다. 김태환 1904 2003/02/12
661     Re:도와주세요. 인터베이스에서 트리거를 생성하려하는데 에러가 납니다. TK 1877 2003/03/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.