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

C++빌더 Q&A
C++Builder Programming Q&A
[19126] Re:key vioaton 문제점
조준회 [] 726 읽음    2002-06-05 21:17
primary key를 설정한경우..

동일한 내용이 입력될수 없습니다.
입력되는 값이 이전에 입력되어 있는 값인지 확인해보세요..

이 문제라면..Table 설계를 다시하거나..
primary Key설정을 없애거나 해야 합니다.

또, 간혹 paradox를 쓰는경우에 index가 손상된 경우엔
동일한 값이 아닌데도 에러가 발생하는 경우가 있더군요..


모라 님이 쓰신 글 :
: 스케쥴 관리 프로그램에서 소스 수정후 컴파일하니 key vioatoion에러가 나오네요.
:
: 디버그시 DataModule3->Table1->Post();에서 관련 에러가 뜨는데,
:
: 어디에서 문제점이 발생했는지 알 수 있을까요? DB에 입력시 문제인 것 같은데,
:
: 아무리봐도 문제점을 모르겠어요..도와주시기 바랍니다
:
:
: ------------------------------------------------------------------------------------------
:     AnsiString Tmp;
:     AnsiString tmp2,tmp3;
:
:     DataModule3->Table1->SetKey();
:    DataModule3->Table1->FieldByName("Year")->AsString=Form1->Cal_CurrMonth->Year;
:    // DataModule3->Table1->FieldByName("Month")->AsString=Form1->Cal_CurrMonth->Month;
:    // DataModule3->Table1->FieldByName("Day")->AsString=Form1->Cal_CurrMonth->Day;
:     DataModule3->Table1->GotoKey();
:
:     Tmp = "c:\\Temp\\" + Form1->SchYear + Form1->SchMonth + Form1->SchDay + Form1->SchTime + ".txt";
:     Memo1->Lines->SaveToFile(Tmp);
:            tmp2=StrToInt(DataModule3->Table1->FieldByName("Day")->AsString);
:            tmp3=StrToInt(IntToStr(Form1->Cal_CurrMonth->Day));
:           //DataModule3->Table1->First();
:           while (tmp2==tmp3) {
:               if (DataModule3->Table1->FieldByName("Time")->AsString == Form1->SchTime) {
:                  DataModule3->Table1->Edit();
:                  break;
:               }
:               if(DataModule3->Table1->Eof) break;
:               DataModule3->Table1->Next();
:
:           }
:           DataModule3->Table1->Insert();
:           DataModule3->Table1->FieldByName("Year")->AsString = IntToStr(Form1->Cal_CurrMonth->Year);
:           DataModule3->Table1->FieldByName("Month")->AsString = IntToStr(Form1->Cal_CurrMonth->Month);
:           DataModule3->Table1->FieldByName("Day")->AsString = IntToStr(Form1->Cal_CurrMonth->Day);
:           DataModule3->Table1->FieldByName("Time")->AsString = Form1->SchTime;
:           DataModule3->Table1->FieldByName("StartTime")->AsString = IntToStr(Cbo_Start->ItemIndex);
:           DataModule3->Table1->FieldByName("EndTime")->AsString = IntToStr(Cbo_End->ItemIndex);
:           DataModule3->Table1->FieldByName("TiTle")->AsString = Edt_Title->Text;
:           DataModule3->Table1->FieldByName("MemoFile")->AsString=Form1->SchYear + Form1->SchMonth + Form1->SchDay + Form1->SchTime + ".txt";
:              AnsiString Tmp;
:     AnsiString tmp2,tmp3;
:
:     DataModule3->Table1->SetKey();
:    DataModule3->Table1->FieldByName("Year")->AsString=Form1->Cal_CurrMonth->Year;
:    // DataModule3->Table1->FieldByName("Month")->AsString=Form1->Cal_CurrMonth->Month;
:    // DataModule3->Table1->FieldByName("Day")->AsString=Form1->Cal_CurrMonth->Day;
:     DataModule3->Table1->GotoKey();
:
:     Tmp = "c:\\Temp\\" + Form1->SchYear + Form1->SchMonth + Form1->SchDay + Form1->SchTime + ".txt";
:     Memo1->Lines->SaveToFile(Tmp);
:            tmp2=StrToInt(DataModule3->Table1->FieldByName("Day")->AsString);
:            tmp3=StrToInt(IntToStr(Form1->Cal_CurrMonth->Day));
:           //DataModule3->Table1->First();
:           while (tmp2==tmp3) {
:               if (DataModule3->Table1->FieldByName("Time")->AsString == Form1->SchTime) {
:                  DataModule3->Table1->Edit();
:                  break;
:               }
:               if(DataModule3->Table1->Eof) break;
:               DataModule3->Table1->Next();
:
:           }
:           DataModule3->Table1->Insert();
:           DataModule3->Table1->FieldByName("Year")->AsString = IntToStr(Form1->Cal_CurrMonth->Year);
:           DataModule3->Table1->FieldByName("Month")->AsString = IntToStr(Form1->Cal_CurrMonth->Month);
:           DataModule3->Table1->FieldByName("Day")->AsString = IntToStr(Form1->Cal_CurrMonth->Day);
:           DataModule3->Table1->FieldByName("Time")->AsString = Form1->SchTime;
:           DataModule3->Table1->FieldByName("StartTime")->AsString = IntToStr(Cbo_Start->ItemIndex);
:           DataModule3->Table1->FieldByName("EndTime")->AsString = IntToStr(Cbo_End->ItemIndex);
:           DataModule3->Table1->FieldByName("TiTle")->AsString = Edt_Title->Text;
:           DataModule3->Table1->FieldByName("MemoFile")->AsString=Form1->SchYear + Form1->SchMonth + Form1->SchDay + Form1->SchTime + ".txt";
:           DataModule3->Table1->Post();

+ -

관련 글 리스트
19125 key vioaton 문제점 모라 660 2002/06/05
19126     Re:key vioaton 문제점 조준회 726 2002/06/05
19131         관련 필드들과 일치하는걸 찿을려면.. 모라 712 2002/06/05
19132             Primary key가 아니더라도, 인덱스는 만들 수 있습니다. 김백일 765 2002/06/06
19140                 또 질문. Index로 지정된 필드를 저장할때는..? 모라 739 2002/06/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.