AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MyBase: Datenlöschen
Thema durchsuchen
Ansicht
Themen-Optionen

MyBase: Datenlöschen

Ein Thema von Kralle · begonnen am 18. Aug 2014 · letzter Beitrag vom 19. Aug 2014
Antwort Antwort
Seite 1 von 2  1 2      
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 10:54
Ich verstehe nur nicht ganz, warum du für das Löschen eines Datensatzes in einer Schleife durch die ganze Datenmenge läufst? Dafür hast du doch Locate?
Ralph
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#2

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 10:58
Moin,

Ich verstehe nur nicht ganz, warum du für das Löschen eines Datensatzes in einer Schleife durch die ganze Datenmenge läufst? Dafür hast du doch Locate?
Ich will aber nicht nur einen Datensatz löschen sondern alle mit einem bestimmten Wert in "Codenummer".

Gruß HEiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 11:02
Trotzdem kannst Du dich dann auf die Datensätze, die dem Suchmuster entsprechen, beschränken (Z.B. per Locate)
Markus Kinzler
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 11:03
ok. Dann würde ich aber mit einer while Schleife arbeiten:

while ClientDataset1.Locate(...) do
ClientDataset1.Delete

oder so.

Oder natürlich ein entsprechendes SQL-Statement absetzen (um alle entsprehcende Datensätze auf einmal zu löschen) und danach das ClientDataset aktualisieren.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#5

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 11:04
Das würde ich vielleicht eher so angehen (Pseudo-Code):
Delphi-Quellcode:
Dataset.First;
while not Dataset.EOF do
  begin
    if Dataset.FieldByName['Codenummer'] = DeinSuchbegriff then
      Dataset.Delete
    else
      Dataset.Next;
  end;
SQL o.ä. scheidet bei MyBase ja leider aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 11:17
SQL o.ä. scheidet bei MyBase ja leider aus.
Das wußte ich nicht und nehme meinen obigen Vorschlag wieder zurück.
Ralph
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#7

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 11:52
Danke, für Eure Hilfe.

Die "Schleife " habe ich jetzt so gelöst:
Code:
with ClientDataSet1 do
   begin
     First;
     while not EOF do
       begin
         if FieldByName('Codenummer').AsString = lbledt1.text then
           Delete
         else
           Next;
       end;
   end;
Oder spricht was gehen "with"?

Gruß Heiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 11:57
Wenn Du Dir ganz sicher bist, dass niemand jemals auf die Idee kommt, einem Formular First/Next/Delete Eigenschaften/Methoden zu spendieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#9

AW: MyBase: Datenlöschen

  Alt 18. Aug 2014, 12:38
Moin,

Wenn Du Dir ganz sicher bist, dass niemand jemals auf die Idee kommt, einem Formular First/Next/Delete Eigenschaften/Methoden zu spendieren.

Selbst Wenn jemand dem Formular diese Eigenschaften zufügen würde, würde das "with" nicht dafür sorgen, das "first" und "next" sich auf das "ClientDataSet1" beziehen?
Oder würden sich die Eigenschaften dann auf trotzdem auf das Formular beziehen?

Gruß HEiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.756 Beiträge
 
Delphi 12 Athens
 
#10

AW: MyBase: Datenlöschen

  Alt 19. Aug 2014, 10:23
Du könntest auch einen Filter auf das ClientDataSet legen. Dann würde sich die Schleife etwas verkürzen lassen:

Delphi-Quellcode:
  cds.Filter := 'Codenummer = ' + QuotedStr(lbledt1.text); // Wenn Codenummer ein numerisches Feld ist, kann man die Quotes weglassen.
  cds.Filtered := true;
  cds.First;
  while not cds.EOF do
    cds.Delete;
  cds.Filtered := false;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 01:29 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