갑자기 에러가 납니다..
소스포함합지여..소스상에 문제는 없는것같은데..흑흑..
//테이블에 입력값 저장
machinetbl.Append;
machinetbl.FieldByName('Lot_num').asstring:=lotno.Text;
machinetbl.FieldByName('Device').asstring:=devicesel.Text;
machinetbl.FieldByName('Lot_serial').asinteger:=strtoint(lotse.Text);
machinetbl.FieldByName('Chipsize').asfloat:=strtofloat(chips.Text);
machinetbl.FieldByName('검사수준').asinteger:=strtoint(interval.Text);
machinetbl.FieldByName('장비번호').asstring:=machine_name.Text;
machinetbl.FieldByName('일자').asdatetime:=strtodatetime(FormatDateTime('YYYY-MM-DD',now));
machinetbl.FieldByName('운전시작시간').asdatetime:=strtodatetime(Formatdatetime('hh:mm:ss',now));
machinetbl.FieldByName('정지시간').asdatetime:=strtodatetime(Formatdatetime('hh:mm:ss', now+(1/1440)*20));
//정지시간은 무조건 시작시간 20분후로했습니다..
machinetbl.Post;
tmptime:=now;
decodetime(tmptime, hh, mm, ss, ms);
firstsec:=hh*3600 + mm*60 + ss;
tmptime:=now+((1/1440)*20);
decodetime(tmptime, hh, mm, ss, ms);
lastsec:=hh*3600 + mm*60 + ss;//종료시간의 초환산값
dosec:=lastsec - firstsec;
//초를 다시 시,분,초로 환산
hh:=dosec div 3600;
dosec:= dosec mod 3600;
mm:=dosec div 60;
ss:= dosec mod 60;
machinetbl.Append;
machinetbl.FieldByName('가동시간').asdatetime:=encodetime(hh, mm, ss, 0);
machinetbl.Post;
//이부분은 출력이 안되구여.
optbl.Append;
optbl.FieldByName('장비번호').asstring:=machine_name.Text;
optbl.FieldByName('일자').asdatetime:=strtodatetime(FormatDateTime('YYYY-MM-DD',now));
optbl.Post;
end;
고수님들의 조언을~
> 갑자기 에러가 납니다..
>
> 소스포함합지여..소스상에 문제는 없는것같은데..흑흑..
>
> //테이블에 입력값 저장
> machinetbl.Append;
> machinetbl.FieldByName('Lot_num').asstring:=lotno.Text;
> machinetbl.FieldByName('Device').asstring:=devicesel.Text;
> machinetbl.FieldByName('Lot_serial').asinteger:=strtoint(lotse.Text);
> machinetbl.FieldByName('Chipsize').asfloat:=strtofloat(chips.Text);
> machinetbl.FieldByName('검사수준').asinteger:=strtoint(interval.Text);
> machinetbl.FieldByName('장비번호').asstring:=machine_name.Text;
> machinetbl.FieldByName('일자').asdatetime:=strtodatetime(FormatDateTime('YYYY-MM-DD',now));
> machinetbl.FieldByName('운전시작시간').asdatetime:=strtodatetime(Formatdatetime('hh:mm:ss',now));
> machinetbl.FieldByName('정지시간').asdatetime:=strtodatetime(Formatdatetime('hh:mm:ss', now+(1/1440)*20));
> //정지시간은 무조건 시작시간 20분후로했습니다..
> machinetbl.Post;
>
> tmptime:=now;
> decodetime(tmptime, hh, mm, ss, ms);
> firstsec:=hh*3600 + mm*60 + ss;
>
> tmptime:=now+((1/1440)*20);
> decodetime(tmptime, hh, mm, ss, ms);
> lastsec:=hh*3600 + mm*60 + ss;//종료시간의 초환산값
>
> dosec:=lastsec - firstsec;
> //초를 다시 시,분,초로 환산
> hh:=dosec div 3600;
> dosec:= dosec mod 3600;
> mm:=dosec div 60;
> ss:= dosec mod 60;
>
> machinetbl.Append;
> machinetbl.FieldByName('가동시간').asdatetime:=encodetime(hh, mm, ss, 0);
> machinetbl.Post;
> //이부분은 출력이 안되구여.
>
> optbl.Append;
> optbl.FieldByName('장비번호').asstring:=machine_name.Text;
> optbl.FieldByName('일자').asdatetime:=strtodatetime(FormatDateTime('YYYY-MM-DD',now));
> optbl.Post;
> end;
>
> 고수님들의 조언을~
Key Violation.... 에러는
테이블 등록작업시에
Primary Key 또는 Unique Key가 중복되기 때문에
발생하는 에러이기 때문에
키값이 중복되어 입력하려 할때 발생합니다.
삽입시
키값이 중복되어 발생할 확률이
있는가를 검토해보십시요.