Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   DBGrid Editing (https://www.delphipraxis.net/165648-dbgrid-editing.html)

Ruewue 10. Jan 2012 09:53

DBGrid Editing
 
Hallo zusammen,

momentan zweifle ich an meinem Verstand. Ich habe ein DBGrid und lese eine Tabele ein. Diese läßt sich auch problemlos editieren. Lese ich nun diese Tabele mit gefilterten Daten, also via Where Clausel im Select ein, dann kann ich die Felder nicht mehr editieren. Das Feld geht zwar in den Editiermodus, aber es wird keine Eingabe über die Tastatur angenommen. Lese ich dann die Tabelle wie vollständig ein, ist alles wieder normal. Ich habe aber sehr große Tabellen zu editieren. Der User soll nun nicht mehrere hundertausen Zeilen durchsuchen um seinen Datensatz zu finden. Er soll die Daten schon vorgefiltert erhalten. Die Filterung kann er selbst bestimmen.

Wenn ich die Tabelle von vorn herein mit einem festen Filter einlese, funktioniert es auch.

Wo liegt nun mein Denkfehler? Sehe ich den Wald vor lauter Bäumen nicht?


Danke für eure Hilfe!

jobo 10. Jan 2012 10:15

AW: DBGrid Editing
 
Ich kenne es von Oracle so, dass die DB dynamisch bestimmt, ob sie anhand des SQL noch eindeutig den PK der Ergebnismenge bestimmt. Das geht z.B. nicht mehr (naheliegend), wenn das SQL Aggregatfunktionen enthält oder schlicht der PK nicht mehr im Ergebnisset drin ist.
Funktioniert problemlos auch mit Joins über mehrere Tabellen und reinen "Filtern".
Dennoch, wenn die DB meint, dass es nicht mehr geht, kannst Du clientseitig nichts machen, außer Dein SQL zu prüfen.

Wie das mit anderen DB ist, kann ich Dir nicht sagen. Vielleicht hat aber auch Dein Filtercode einen Hau. Am besten das Problem in einem Miniprogramm freistellen und untersuchen.

Ruewue 10. Jan 2012 10:19

AW: DBGrid Editing
 
HALLO !!!!


Es lag wirklich zwischen den Ohren. Man sollte in solchen Fällen immer das gleiche Query (TmySQLQuery) und die gleiche DataSource benutzen. Dann klappt es auch.


DANKE ! ! !


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