![]() |
Datenbank: ADS • Version: 8.1 • Zugriff über: ADSTable, ADSQuery
SQL - Löschen aus der Ergebnismenge nicht aus der Datenbank
Hallo zusammen,
ich stehe hier gerad mal wieder auf der Leitung. Ich führe eine SQL aus und möchte nun aus der Ergebnismenge gezielt einige Sätze löschen. Aber nur aus der Ergebnismenge und nicht aus der Datenbank selbst. Wie stelle ich sowas an..... irgendwie komm ich da heute nicht drauf?!?! Gruß Polarwar |
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Durch Ausschluss ?
SQL-Code:
... where ... and not in ( ...)
|
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Zitat:
Du musst also das SQL-Statement entsprechend aufbauen. |
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Durch Ausschluss???
Ich kann die Daten nicht vorher eindeutig selektieren!!! Ich habe eine Datenmenge mit z.B. 2500 ausgewerteten Datensätzen ( In diesem Fall Rechnungen). Nun möchte ich vor der Weiterverarbeitung spezielle Sätze, die nicht unbedingt einer Regel entsprechen, löschen....aber natürlcih nicht aus der Datenbank, sondern nur aus der Ergebnismenge. In nem Grid und löschen halt. Danach möchte ich mit den übrigen Sätzen noch weiter arbeiten. Gruß Polarwar |
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Ich glaube nicht das die ADS-Komponenten disconnected Datasets unterstützen und das über Transaktionen zu "simulieren" ist keine gute Idee.
|
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
wenn die Tabelle eine PK hat (Annahme Name ID):
SQL-Code:
dann sind diese aus der Ergebnismenge verschwunden.
... and ID not in (12345, 12346, 12349, ...);
|
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Hallo,
das die ADS Kompos soetwas nicht unterstützen, habe ich mir fast gedacht. Wollte nur zur Sicherheit nochmal schauen, ob ich nicht doch auf der Leitung stehe. Ich werde mir die Ergebnismenge nun in eine Temptable moven, in der ich dann auch löschen kann. Ist zwar unschön, aber es geht. (drop temptable....select * into temptable from ***) Danke trotzdem für die schnellen Antworten! |
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Oder Du nimmst eine MemoryTable. Das ist z.B. bei den RxKomponenten dabei.
Die kannst Du aus einer Query füllen und dann damit machen, was Du willst. Aber der bessere Weg ist schon, sich nur von der DB zu geben lassen, was man wirklich haben möchte. |
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Zitat:
Oder VirtualTable von DevArt (CoreLabs) oder kbMemTable |
Re: SQL - Löschen aus der Ergebnismenge nicht aus der Datenb
Du könntest auch ein weiteres Feld (ich nenne es mal Prio) aufnehmen.
Der Benutzer setzt die Prio seiner Rechnungen von -3 bis +3 (default Wert ist 0) Und dann kannst du einfach eine Where-Bedingung (WHERE ... AND (Prio>=0)) ansetzen oder auch das Filter-Property benützen. Damit der Benutzer die Prio von vielen Datensätzen leicht ändern kann, könntest du im DBGrid die Option dgMultiSelect aktivieren. Der Benutzer selektiert beliebig viele Datensätze und kann dann die Priorität auf einen Rutsch anpassen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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 by Thomas Breitkreuz