Moin ! Ich hab ein seltsames Problem zu dem mir keine Überschrift einfällt ^...
Folgendes habe ich vor:
1. Zähle alle Datensätze die den Status Valid haben.
2. Überschreibe alle Datensätze mit dem Status Waiting die nicht den Status Valid haben.
--> Nach dem überschreiben hatte ich aufeinmal weniger "Valids" als vor dem schreiben. Also mach ich noch:
3. Zähle nochmal alle Datensätze
Ergebnis zu 1.: 119
Ergebnis zu 3.: 71
Source:
Delphi-Quellcode:
//Zählung 1
JobQuery1.Close;
JobQuery1.SQL.Clear;
JobQuery1.SQL.Add('SELECT COUNT(STATUS) FROM JOBTABLE WHERE STATUS=''Valid'';');
JobQuery1.Open;
ShowMessage(JobQuery1.Fields[0].AsString);
//Alle nicht "Valid" überschreiben
JobDBGrid1.DataSource.DataSet.DisableControls;
JobTable1.First;
while not JobTable1.Eof do
begin
RowNumber:=JobTable1.FieldByName('ROWNUMBER').AsString;
if not (JobTable1.FieldByName('STATUS').AsString='Valid') then
begin
myList.Add(RowNumber);
JobQuery1.Close;
JobQuery1.SQL.Clear;
JobQuery1.SQL.Add(Format('UPDATE %s SET '+
'%s = ''%s'''+
'WHERE ROWNUMBER = ''%s'';', [fMain.JobTable1.TableName,'STATUS','Waiting',RowNumber]));
JobQuery1.Open;
JobQuery1.Close;
end;
JobTable1.Next;
end;
JobDBGrid1.DataSource.DataSet.EnableControls;
//Zählung 2
JobQuery1.Close;
JobQuery1.SQL.Clear;
JobQuery1.SQL.Add('SELECT COUNT(STATUS) FROM JOBTABLE WHERE STATUS=''Valid'';');
JobQuery1.Open;
ShowMessage(JobQuery1.Fields[0].AsString);
Edit: Moment, eine Sache prüfe ich nochmal