Einzelnen Beitrag anzeigen

IlseB

Registriert seit: 24. Sep 2003
15 Beiträge
 
Delphi 5 Professional
 
#6

Re: Delphi-Oracle8-tquery.Delete

  Alt 24. Sep 2003, 15:55
hier nochmal die Procedure :

Delphi-Quellcode:
procedure TfrmImportAllg.sbtnImportClick(Sender: TObject);
begin
  // prüfen ob Datei und Jahr ausgewählt wurden
  if (cbxJahr.ItemIndex > -1) and (cbxDateiAusw.ItemIndex > -1) then begin
    //Prüfen ob Datensätze schon in TableGde vorhanden
    if quAllg.Active then begin
      quAllg.Close;
    end;
    quAllg.ParamByName('PJahr').AsInteger:= StrToInt(cbxJahr.Text);
    quAllg.Prepared := False;
    if not quAllg.Active then begin
      quAllg.Open;
    end;
    with cbxDateiAusw do begin
      if quAllg.IsEmpty then begin
        quAllg.Close;
        // importieren der ausgewählten Datei
        case ItemIndex of
          0 : begin
            ImportCopyGde;
          end;
          1 : begin
            ImportCopyBank;
          end;
          2 : begin
            ImportCopyGdeBank;
          end;
          3 : begin
// ImportCopyAdr;
              ExcelTabOeffnen;
              DBAdrfuellen;
          end;
        end; //Case-end
      end else begin // quAllg not empty
        // Meldung dass Datensätze bereits vorhanden und
        // Abfrage ob überschrieben werden soll
        if MessageDlg('Datensätze mit Jahr ' + cbxJahr.Text + ' bereits vorhanden! Überschreiben ?',
             mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
          //Löschen und importieren => Überschreiben der Sätze
          quAllg.First;
          case ItemIndex of
            0 : begin
              try
               quAllg.CachedUpdates := true;
               quAllg.UpdateObject := frmDataModul.UpdateGde;
                while not quAllg.Eof do begin
                  quAllg.Delete;
                end;
              finally
                quAllg.ApplyUpdates;
                quAllg.CachedUpdates := false;
              end;
            end;
            1 : begin
              try
               quAllg.CachedUpdates := true;
               quAllg.UpdateObject := frmDataModul.UpdateGdeBank;
                while not quAllg.Eof do begin
                  quAllg.Delete;
                end;
              finally
                quAllg.ApplyUpdates;
                quAllg.CachedUpdates := false;
              end;
            end;
            2 : begin
              try
               quAllg.CachedUpdates := true;
               quAllg.UpdateObject := frmDataModul.UpdateBank;
                while not quAllg.Eof do begin
                  quAllg.Delete;
                end;
              finally
                quAllg.ApplyUpdates;
                quAllg.CachedUpdates := false;
              end;
            end;
            3 : begin
                while not (quAllg.Eof) do begin
                  frmHaupt.dbFinalDi.StartTransaction;
                  quAllg.Delete;
                  frmHaupt.dbFinalDi.Commit;
                end;
            end;
          end;
          case ItemIndex of
            0 : begin
             //*ImportCopyGde;
            end;
            1 : begin
             //* ImportCopyBank;
            end;
            2 : begin
             //* ImportCopyGdeBank;
            end;
            3 : begin
             //* ImportCopyAdr;
            end;
          end; //Case-end
          showmessage('hier sollten die Sätze überschrieben werden');
        end else begin //Datensätze nicht überschreiben
          // routine beenden => normal keine Handlung mehr nötig,
          // dient momentan nur zur Kontrolle
          showmessage('hier sollten wir auf anständige Art und Weise das ganze beenden');
        end; //if msgDialog-end
      end; //quAllg.empty-end
    end; // with cbxDateiAusw-end
  end else begin // Jahr oder Dateiname nicht ausgewählt
    showmessage('Sie müssen vor dem Import sowohl eine Datei als auch das Jahr auswählen!');
  end; // Jahr+Dateiname ausgewählt-end
end;
[edit=MrSpock]Code-Tags hinzugefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat