Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensätze in DBGrid (https://www.delphipraxis.net/42347-datensaetze-dbgrid.html)

oldie74 17. Mär 2005 14:25

Datenbank: Oracle • Version: 9i • Zugriff über: BDE

Datensätze in DBGrid
 
Hallo zusammen!

Ich arbeite mit einem DBGrid. Während einer Session können in diesem Grid beliebig viele Datensätze geändert werden. Der commit an die DB erfolgt erst, wenn der Benutzer die Session mit OK bestätigt. Soweit so gut. Es gibt während der Session eine Funktion, welche das kopieren eines Datensatzes ermöglicht um einen Ursprungsbetrag auf mehrere Sätze aufzuteilen. Es gibt also bspw. in Datensatz 1 einen Ursprungsbetrag von 100. Dieser Betrag wird reduziert auf 80. Anschliessend wird der Datensatz kopiert und im kopierten Satz darf nun max 20 im Feld Betrag eingegeben werden. Es muss gewährleistet sein, dass der Ursprungsbetrag nie überschritten werden darf. Die zusammenhängenden Datensätze werden über ein Feld "parent" identifiziert, in dem die ID des ersten Satzes steht. Ein Satz kann n mal kopiert werden.

Wenn ich nun auf den Ursprungsbetrag prüfen will kann ich das nicht per SQL-Summenfunktion tun, da alles in einer Session passiert und die Datensätze noch nicht commited sind. Ich muss somit die Datenmenge des Grids durchsuchen und die hier eingetragenen und zusammengehörigen Beträge summmieren. Wie kann ich das tun, ohne das sich die Selektion im Grid bewegt? Bei jedem "next" auf das Dataset ändert sich die Selektion im Grid und das sieht nicht besonders gut aus!

Jemand eine Idee?

MrSpock 17. Mär 2005 14:28

Re: Datensätze in DBGrid
 
Hallo oldie74,

das geht über DisableControls und EnableControl.

oldie74 17. Mär 2005 14:49

Re: Datensätze in DBGrid
 
Vielen Dank, werde ich ausprobieren!

MrSpock 17. Mär 2005 14:51

Re: Datensätze in DBGrid
 
Hallo Olli,

ein kleiner Nachtrag noch: Herzlich willkommen im Delphi-PRAXIS Forum. Mir ist gerade erst aufgefallen, dass das oben ja dein erstes Posting war. :hello:

Jasocul 17. Mär 2005 15:30

Re: Datensätze in DBGrid
 
Zitat:

Zitat von oldie74
Wenn ich nun auf den Ursprungsbetrag prüfen will kann ich das nicht per SQL-Summenfunktion tun, da alles in einer Session passiert und die Datensätze noch nicht commited sind. Ich muss somit die Datenmenge des Grids durchsuchen und die hier eingetragenen und zusammengehörigen Beträge summmieren. Wie kann ich das tun, ohne das sich die Selektion im Grid bewegt? Bei jedem "next" auf das Dataset ändert sich die Selektion im Grid und das sieht nicht besonders gut aus!

Wenn du in der selben Session bist, solltest du deine eigenen Änderungen bei DB-Abfragen "sehen" können. Es sei denn, die BDE schießt dir dazwischen.
Die solltest du aber sowieso nicht verwenden. Nimm vernünftige Komponenten. Hat nur Vorteile: Geschwindigkeit, keine Einschränkungen bei komplizierten SQLs, BLOBs werden vernünftig unterstützt, etc.

Stevie 17. Mär 2005 15:52

Re: Datensätze in DBGrid
 
Zitat:

Zitat von Jasocul
Die solltest du aber sowieso nicht verwenden. Nimm vernünftige Komponenten. Hat nur Vorteile: Geschwindigkeit, keine Einschränkungen bei komplizierten SQLs, BLOBs werden vernünftig unterstützt, etc.

Da kann ich nur zustimmen! Wenn die Anwendung für Oracle optimiert und kommerziell genutzt werden soll, dann führt kein Weg an den DOA-Komponenten vorbei!


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