Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Löschen in DBGrid funktioniert nicht

  Alt 30. Nov 2005, 17:22
Hai Ati,

noch als anmerkung zu der Aussage von shmia

Zitat von shmia:
1.) die Tabelle, in der du löschen willst braucht einen Primärschlüssel. Ohne PK geht's nicht !!
Dies ist so wenn Du mit der .Delete Methode deines TDataSet arbeiten möchtest. Wenn Du dir mit einem Zusätzlichen TDataSet den Datensatz per SQL-Befehl löschst brauchst Du kein PK.

Was deine Fehlermeldung nach dem .Refresh angeht denke ich mal Das Du folgendes machst:
Delphi-Quellcode:
begin
  with qrMain do
  begin
    Close;
    SQL.Text := 'SELECT * FROM tabelle';
    Open; // Jetzt werden die Daten im DBGrid angezeigt;
    SQL.Text := 'DELETE FROM tabelle WHERE nummer = 1'; // Datensatz wo nummer = 1 ist löschen
    ExecSQL;
    Refresh; // Peng!!!
  end;
end
Das Refresh kann nicht gehen da Du ja jetzt ein ganz anderes SQL-Statment hast. Du müsstest das ganze also auf zwei Query aufteilen:
Delphi-Quellcode:
begin
  with qrMain do
  begin
    Close;
    SQL.Text := 'SELECT * FROM tabelle';
    Open; // Jetzt werden die Daten im DBGrid angezeigt;
  end;
  with qrDelete do
  begin
    Close;
    SQL.Text := 'DELETE FROM tabelle WHERE nummer = 1'; // Datensatz wo nummer = 1 ist löschen
    ExecSQL;
  end;
  qrMain.Refresh;
end
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat