Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Eintrag aus Datenbank löschen (https://www.delphipraxis.net/163067-eintrag-aus-datenbank-loeschen.html)

t0mmy 14. Sep 2011 15:12

Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO

Eintrag aus Datenbank löschen
 
Ich liste eine Tabelle in der DBGrid auf.. jetzt makier ich einen eintrag und möchte diesen markierten Eintrag löschen? Kann mir jemand einen Hinweis geben?

DeddyH 14. Sep 2011 15:19

AW: Eintrag aus Datenbank löschen
 
Am DBGrid hängt im Normalfall ja eine Datasource, an der wiederum ein Dataset hängt. Und dem kannst Du mitteilen, dass der Datensatz, auf dem aktuell der Datensatzzeiger steht, gelöscht werden soll.

t0mmy 14. Sep 2011 15:23

AW: Eintrag aus Datenbank löschen
 
Nein, hab keine gehabt, aber jetzt hab ich eine hinzugefügt. Wie sag ich dem DataSet nun das er den markierten Eintrag in der DBGrid löschen soll.

Union 14. Sep 2011 15:26

AW: Eintrag aus Datenbank löschen
 
Häng auch einen DBNavigator an die Datasource oder führe Delete aus (am besten mit einer Abfrage an den Benutzer vorher).

DeddyH 14. Sep 2011 15:27

AW: Eintrag aus Datenbank löschen
 
Was heißt denn "Löschen" auf Englisch? Delete, oder? Wie könnte es also lauten?
Delphi-Quellcode:
DBGrid.Datasource.Dataset.Delete;

t0mmy 14. Sep 2011 15:53

AW: Eintrag aus Datenbank löschen
 
Okay, kann ich der Dataset sagen das wenn ich die Werte aus der DBGrid in Edit felder reinschreibe, diese dann auch überspeichern soll?

DeddyH 14. Sep 2011 15:55

AW: Eintrag aus Datenbank löschen
 
Wie meinen?

Union 14. Sep 2011 15:57

AW: Eintrag aus Datenbank löschen
 
Dafür solltest Du dann datensensitive Elemente (TDBEdit) verwenden. Bei diesen hast Du ebenfalls eine Eigenschaft DataSource.

DeddyH 14. Sep 2011 16:56

AW: Eintrag aus Datenbank löschen
 
Japp, damit kann man im Extremfall eine komplette Anwendung "programmieren", ohne auch nur eine einzige Zeile Code selbst schreiben zu müssen.

Sir Rufo 14. Sep 2011 20:34

AW: Eintrag aus Datenbank löschen
 
Zitat:

Zitat von DeddyH (Beitrag 1124340)
Am DBGrid hängt im Normalfall ja eine Datasource, an der wiederum ein Dataset hängt. Und dem kannst Du mitteilen, dass der Datensatz, auf dem aktuell der Datensatzzeiger steht, gelöscht werden soll.

Zitat:

Zitat von t0mmy (Beitrag 1124343)
Nein, hab keine gehabt, aber jetzt hab ich eine hinzugefügt. Wie sag ich dem DataSet nun das er den markierten Eintrag in der DBGrid löschen soll.

Hmmm, ein TDBGrid ohne TDataSource mit Werten zu füllen ist auch schon eine Kunst :mrgreen:

xan553 19. Sep 2011 18:47

AW: Eintrag aus Datenbank löschen
 
also meines wissens nach und nach meiner wissenserweiterung in meinem letzten trhread würde folgendes passen:

DBGrid = DBG1
DBTable = Tbl1
Lösch Button = BtnDelDB

die Table mit der DB verbinden, das grid mit dem table verbinden und dann:


Delphi-Quellcode:
procedure TForm1.BtnDelDBClick(Sender: TObject);
begin
  if DBG1.SelectedRows <> nil
  then
  begin
    Tbl1.Delete;
    Tbl1.Edit;
  end;
end;
oder irre ich mich?

haentschman 19. Sep 2011 19:26

AW: Eintrag aus Datenbank löschen
 
Hallo...
Delphi-Quellcode:
procedure TForm1.BtnDelDBClick(Sender: TObject);
begin
  if DBG1.SelectedRows <> nil then
  begin
    Tbl1.Delete;
  end;
end;
so ist´s besser. Das DELETE wird mit einem POST abgeschlossen. Das EDIT wird nicht benötigt, es sei denn, daß der nächste Datensatz in den Bearbeitungsmodus versetzt werden soll. Dann gehört aber ein POST noch irgendwohin... :zwinker:

Union 19. Sep 2011 22:17

AW: Eintrag aus Datenbank löschen
 
Und ganz cool wäre noch Exceptionhandling.

Sir Rufo 20. Sep 2011 00:08

AW: Eintrag aus Datenbank löschen
 
Un damit auch wirklich das gelöscht wird, was man angezeigt bekommt ... und auch löschen kann:
Delphi-Quellcode:
procedure TForm1.BtnDelDBClick(Sender: TObject);
begin
  if DBG1.SelectedRows <> nil then
    if DBG1.DataSource.DataSet.CanModify then
      DBG1.DataSource.DataSet.Delete;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 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