AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Eine Zeile aus DBGrid löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Zeile aus DBGrid löschen

Ein Thema von egal · begonnen am 1. Jul 2005 · letzter Beitrag vom 1. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#1

Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 10:35
Datenbank: Access 2000 • Zugriff über: ADO
Hallo,
wie kann ich in einem DBGrid die ganze Zeile löschen bzw. ausschneiden, ohne Änderungen in der Datenbank? Danke.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 10:42
Zitat von egal:
Hallo,
wie kann ich in einem DBGrid die ganze Zeile löschen bzw. ausschneiden, ohne Änderungen in der Datenbank? Danke.
Hmmm... eigentlich überhaupt nicht. Das DBGrid zeigt ja einfach die Daten der TDataSource an. Und jede änderung betrifft dann auch das TDataSet.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Kompon Ente
(Gast)

n/a Beiträge
 
#3
  Alt 1. Jul 2005, 10:44
Hi,

ich denke hiermit sollte es gehn:

DBGrid1.Columns.Delete; Viel Erfolg!
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#4
  Alt 1. Jul 2005, 10:54
Zitat von Kompon Ente:
Hi,

ich denke hiermit sollte es gehn:

DBGrid1.Columns.Delete; Viel Erfolg!
Column ist aber doch die Spalte und nicht die Zeile.

Warum änderst du nicht einfach das Statement des Datasets? Select ... where not id = 123...
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#5

Re: Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 10:55
Das ist nicht gut. Dann muss ich StringGrid nehmen, aber das wollte ich eigentlich vermeiden, weil ich mit großen Daten arbeiten kann.
Ich muss 2 DBGrid oder 2 StringGrid nehmen und in einem Datensätze anzeigen. Der Anwender soll die Datensätze auswählen und die ausgewählte Dastensätze soll ich im zweiten Grid anzeigen, im ersten Grid soll ich sie löschen. So eine blöde Aufgabe.
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#6
  Alt 1. Jul 2005, 10:57
Zitat von Treffnix:
Column ist aber doch die Spalte und nicht die Zeile.

Warum änderst du nicht einfach das Statement des Datasets? Select ... where not id = 123...
so geht nicht, ich habe jetzt auch meine Aufgabe genauer beschrieben, guck mal mein vorheriges Post
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 11:21
Zitat von egal:
wie kann ich in einem DBGrid die ganze Zeile löschen bzw. ausschneiden, ohne Änderungen in der Datenbank?
Das geht so nicht.
Es gibt aber 2 Möglichkeiten:
1.) die Tabelle wird mit einem Feld (z.B. "DeleteFlag") erweitert.
Wenn du eine Zeile löschen möchtest wird nur "DeleteFlag" auf True gesetzt.
Im DBGrid werden Zeilen mit DeleteFlag=True rot eingefärbt.
Am Ende kannst du entscheiden, ob die markierten Zeilen wirklich gelöscht werden oder ob nur
die Lösch-Markierung auf False gesetzt wird

2.) gesamte Tabelle in ein Memory-Dataset kopieren
im Memory-Dataset löschen
Am Ende Memory-Dataset -> Tabelle
Andreas
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#8

Re: Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 12:06
Der Anwender kann noch außerdem die ausgewählte Sätze im zweiten Grid wieder löschen, d.h. ich muss diese Sätze in meinem ersten Grid wieder anzeigen.
Soll ich vielleicht Filter verwenden?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 12:58
Zitat von egal:
Der Anwender kann noch außerdem die ausgewählte Sätze im zweiten Grid wieder löschen, d.h. ich muss diese Sätze in meinem ersten Grid wieder anzeigen.
Soll ich vielleicht Filter verwenden?
Filter helfen dir hier nicht.
Ich würde voll auf Memory-Datasets setzen. Sowohl in der Quell- als auch Zieltabelle.
http://www.torry.net/pages.php?id=572
TkbmMem Table v.3.01 taugt wirklich was.
Andreas
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#10

Re: Eine Zeile aus DBGrid löschen

  Alt 1. Jul 2005, 16:53
hm, Memory-Tabelle. Das bringt mir eigentlich auch nicht viel.
Ich beschreibe noch einmal die Aufgabe.
es gibt 2 Grids. In einem wird beim Starten der Inhalt einer Tabelle angezeigt werden. Tabelle ändern darf ich nicht(DeleteFlag kann man an dieser Stelle vergessen). Der Kunde wählt einen Satz aus, dann drückt er den Button und im zweiten Grid muss dieser ausgewählte Satz angezeigt werden, im anderen Grid muss dieser Satz aber veschwunden. So, der Anwender hat zum Beispiel 10 Sätze ausgewählt, dann denkt er, ich habe einen Mist gebaut, diesen Satz brauche ich nicht. Er wählt diesen Satz aus, drückt den andern Button, der Satz muss im 2 Grid gelöscht und im ersten Grid wieder angezeigt werden.
Wenn ich jetzt Memory-Data-Set mache, dann habe ich ein Problem mit der Wiederherstellung der Sätze, weil der Satz schon aus Memory gelöscht wurde.
Ich hab's versucht doch mit Filter zu machen, aber das klappt nur zum ersten Mal, dann stehe ich immer auf den ersten Satz in der Datenbank und kann keine Filter mehr richtig einsetzen.
Kann ich irgendwie auf eine Zelle im DBGrid greifen, wenn ich da stehe, nicht auf die Datenbank? Dann könnte ich Filter richtig einsetzen oder geht so nicht?
Wenn nicht, dann muss ich wirklich wahrscheinlich Select machen und die DB immer wieder öffnen und schliessen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz