저는 몇 년 동안 생산 중이며 최근에 특정 코드 조각이 작동을 멈추었습니다. 폼의 OnClose
이벤트에서 나는 다음과 같습니다Delphi 프로그램이 갑자기 쿼리 변경 사항을 게시하지 않습니다.
procedure TfrmPublicEmpInfo.FormClose(Sender: TObject;var Action: TCloseAction);
var
i : integer;
strWorkDays : string;
begin
If cbMonday.Checked then strWorkDays := strWorkDays + 'Mo';
If cbTuesday.Checked then strWorkdays := strWorkDays + 'Tu';
If cbWednesday.Checked then strWorkdays := strWorkDays + 'We';
If cbThursday.Checked then strWorkdays := strWorkDays + 'Th';
If cbFriday.Checked then strWorkdays := strWorkDays + 'Fr';
If cbSaturday.Checked then strWorkdays := strWorkDays + 'Sa';
If cbSunday.Checked then strWorkdays := strWorkDays + 'Su';
if strWorkDays <> '' then
begin
qryPubEmployees.Edit;
qryPubEmployees.FieldValues['OCCUPATION'] := strWorkDays;
end;
dtpPEEndTimeChange(self);
dtpPEStartTimeChange(self);
For i := 0 to ComponentCount - 1 do
begin
If Components[i] is TQuery Then
with Components[i] as TQuery do
begin
if State = dsEdit then
post;
end;
end;
end;
그것은이있는 dtpPEEndTimeChange(self)
전화를 가져옵니다
procedure TfrmPublicEmpInfo.dtpPEEndTimeChange(Sender: TObject);
begin
qryPubEmployees.Edit;
dbePEEndTime.Field.Value := StrToInt(FormatDateTime('HHMM', dtpPEEndTime.Time));
end;
이 기능의 프로그램이 Windows.pas를 호출에 걸리면 동안 :
function GetTickCount; external kernel32 name 'GetTickCount';
변경 사항을 레코드에 게시하지 않습니다.
Windows 업데이트로 인해 이러한 오작동이 발생했는지 알 수 있습니까? 현재 Windows XP Professional 버전 5.1 SP 3을 사용하고 있습니다.
분명한 질문은 "변경된 사항"입니다. 사용자 환경에서 변경된 유일한 사항이 Windows 업데이트 인 경우 대답은 "예 창 업데이트는 비난합니다"입니다. 가장 최근의 것을 하나씩 제거하고 테스트하십시오 ..? –
아니요, 스티브, 가장 최근의 일이 항상 그럴만 한 것은 아닙니다. 코드가 영원히 잘못되어 최신 업데이트가 결국 실수로 잘못된 코드가 작동하는 것처럼 보이게하는 버그를 수정했을 수 있습니다. –
아마도 -하지만 그럴 가능성은 적습니다. 그리고 확실하게 모든 업데이트를 되 돌리면 문제를 조금씩 찾아 낼 수 있습니다. –