Einzelnen Beitrag anzeigen

-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#1

Count() + Datensätze überschreiben

  Alt 12. Mai 2011, 00:05
Datenbank: Firebird • Version: 2 • Zugriff über: IB
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

Geändert von -187- (12. Mai 2011 um 00:11 Uhr)
  Mit Zitat antworten Zitat