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

FireBird Q&A
[2793] Re:감사합니다[재문의] Record가 지워지지 않습니다.
까막.윤창희 [ggamagui] 2537 읽음    2008-04-17 11:00
KSPARK 님이 쓰신 글 :
: 말씀해주신데로 Test  하다가 무엇이 잘못 되었는지 한번 같은 Data가 new_Table2로 동일한 Data가 2번
: 들어가서 IB expert 에서 Delete 를 하니까 아래와 같은 Message가 나오면서 Delete가
: 안됩니다...
:
: 어떻게 해야 하나요?
:
: "Cannot Delete record
:  There is at least one record  with same fields values"
:
:
: 까막.윤창희 님이 쓰신 글 :
: : KSPARK 님이 쓰신 글 :
: : : 파이어 버드에서 Trigger를 이용해서 Tabl1의 내용에 UpDate 를 하면 현재
: : :  UpDate할 현재 Table의 내용이 Table2에 Insert 되도록 할려고 합니다.
: : :
: : : 어떻게 하면 되는지 알려 주시면 감사하겠습니다
: : :
: : : 아래는 제가 Test 해본 Code 인데
: : : "select i_oo = s_no from new_table" 에서 Error가 납니다
: : :
: : : Table1에 S_NO(Integer), ID(VarChar), sFIle(blob)이 있고  이것을 UpDate 하기전에
: : : 현재 값을 Table2에 복사 할려고 합니다
: : :
: : :
: : : create trigger trg_test for new_table befor insert position 0 as
: : : declare variable i_oo integer;
: : : declare variable i_PbaId varchar(20);
: : : declare variable i_Bar_Code blob;
: : :
: : : begin
: : :
: : : select i_oo = s_no from new_table // 변수에 현재 Table의 값을 어떻게 넣는지??
: : : insert into new_table2 (D_NO, D_PBAID, D_BAR_CODE) values(S_NO, PBAID, BAR_CODE);
: : :
: : : end
: :
: : 안녕하세요. 까막입니다.
: :
: : New.S_No 이런 식으로 사용하시면 됩니다.
: : 트리거에서는 New.xx   Old.xx   이런식으로 사용합니다.
: : 물론 DB 에 따라 이름이 다를 수 있읍니다.
: : SQL Server 에서는 Inserted.xx 뭐 이런 식으로 사용한 거 같네요. 기억이.. ^^
: :
: :
: :
: : 위대한 단군혼이 살아있는 나라.... 대한민국.

안녕하세요. 까막입니다.

"Cannot Delete record
  There is at least one record  with same fields values"

이 오류는 같은 데이터가 두개가 있어서 발생합니다.
동일한 데이터가 두번 입력이 되었으니, 완전하게 동일한 레코드가 2개가 존재하는 거죠.
이때 한 레코드만 삭제를 하려고 하면 2개중에 어떤걸 삭제하는 것인지 알수가 없으므로 오류가 발생하죠.

DELETE FROM TableName WHERE FieldName = 'xxx..'

이렇게 하시고, 두 레코드를 모두 지우신 다음 다시 입력하시는게 좋겠네요.
아니면 자동증가 필드를 하나 추가하시던가요.

그리고, 같은 데이터가 두번 들어가신 이유를 찾아서 그걸 방지해야 겠죠.




위대한 단군혼이 살아있는 나라.... 대한민국.

+ -

관련 글 리스트
2790 Trigger 작성 방법(파이어버드) KSPARK 2292 2008/04/16
2791     Re:Trigger 작성 방법(파이어버드) 까막.윤창희 2910 2008/04/16
2792         감사합니다[재문의] Record가 지워지지 않습니다. KSPARK 2218 2008/04/17
2793             Re:감사합니다[재문의] Record가 지워지지 않습니다. 까막.윤창희 2537 2008/04/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.