|
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();
|