Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz in DBGrid löschen! (https://www.delphipraxis.net/46720-datensatz-dbgrid-loeschen.html)

Goldesel 30. Mai 2005 14:07

Datenbank: Paradox 7 • Zugriff über: BDE

Datensatz in DBGrid löschen!
 
Hallo,

gibt es eine Möglichkeit, einen vorhandenen Datensatz in einer DBgrid zu löschen und zu bearbeiten. Ich benutze ein Paradox7 Datenbank.

Jannik

Sharky 30. Mai 2005 14:13

Re: Datensatz in DBGrid löschen!
 
Hai Du Goldesel *g*,

ein DBGrid ist nur die Abbildung der Daten aus dem TDataSet. Wenn du es im Grid erlaubt hast kann dort mit Ctrl-Del ein DS gelöscht werden.
Programmtechnich würde das dann so laufen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DBGrid1.DataSource.DataSet.Delete; // Löscht den markierten Datensatz;
end;
Wenn Du die Daten ändern möchtest kannst Du das natürlich über .Edit machen.

Goldesel 30. Mai 2005 14:22

Re: Datensatz in DBGrid löschen!
 
Was is denn "Sharky" *g*?

danke für deine Antwort. Hab allerdings noch n Problem. Hab ne englische Version und die Abfragen aind jetzt auf Englisch. Geht das auch auf Deutsch ... für die die kein Englisch können. (Also ich kann englisch ... *g*)

Jannik

Sharky 30. Mai 2005 14:46

Re: Datensatz in DBGrid löschen!
 
Zitat:

Zitat von Goldesel
...Hab ne englische Version und die Abfragen aind jetzt auf Englisch. Geht das auch auf Deutsch ...

Das geht nur durch das änern der englischen Texte in den Delphi-Sourcen. Also keine gute Lösung.
Deaktiviere doch am besten das Löschen im DB-Grid und schreibe dafür eine eigene Funktion mit einer eigenen Abfrage.

Zum Beispiel:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DBGrid1.ReadOnly := True;
end;

function DeleteRecord(ds: TDataSet): boolean;
begin
  case MessageBox(0, 'Datensatz wirklich löschen?', 'Achtung',
      MB_ICONWARNING or MB_YESNO or MB_DEFBUTTON2) of
    idYes: begin
      ds.Delete;
      Result := True;
    end;
    idNo: begin
      Result := False
    end;
  end;
end;

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if Shift = [ssCtrl] then
  begin
    case Key of
      VK_DELETE: begin
        DeleteRecord((Sender as TDBGrid).DataSource.DataSet)
      end;
    end;
  end;
end;
Oder, noch einfacher Du machst es im Delphi-Referenz durchsuchenBeforeDelete deines Datasets.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz