![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Ich habe in meiner Datenbank eine Tabelle, die zwei mal in meinem Programm angezeigt werden soll:
Dazu habe ich jeweils 2 DBGrids erstellt, die jeweils mit einer TIBCTable/TDataSource-Kombination mit Daten versorgt werden. In beiden TIBCTable-Komponenten ist die selbe Tabelle eingetragen. (Das wird benötigt, da gleichzeigt 2 verschiedene Datensätze ausgewählten werden sollen, die man gleichzeitig sehen/barbeiten soll. Das funktioniert soweit.) Wenn ich jetzt allerding eine Änderung an dem einem DBGrid vornehme, werden die Änderungen im zweiten DBGrid im selben Datensatz nicht sichtbar. Auch neue Datensätze sind nur in einem der DBGrids sichtbar, je nachdem welches Insert welcher TIBCTable aufgerufen wurde. Wie kann ich die Änderungen in beiden DBGrids anzeigen lassen? Erst nach einem Programmneustart sind alle Änderungen in beiden Grids sichtbar. |
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Die 2. Table-Komponente bekommt von der Änderung nichts mit. Du musst bei Änderungen in einem Grid entweder beide DataSets neu laden oder och besser auf Änderungen reagieren ( diese können ja auch von einer anderen Instanz des Programmes und oder anderen Programm her rühren)
|
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Du muss die Daten neu laden, damit Du Änderungen sehen kannst.
Benutzt Du zufällig zusätzlich zum DBGrid auch jeweils einen DBNavigator? Der hat rechts den Button für ein Refresh. Den betätigen und die Daten werden neu geladen. Andernfalls z. B. im AfterPost-Ereignis der Tabellenkomponente die Refresh-Methode aufrufen. Oder:
Delphi-Quellcode:
Was ich nicht weiß ist, ob dann der Satzzeiger verändert wird. Wenn ja, müsstest Du Dir vor dem Refresh den Datensatz merken und nach dem Refresh wieder zu diesem wechseln.
DBGrid.DataSource.DataSet.Refresh;
Elegant ist diese Lösung allerdings sicherlich nicht. |
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Zitat:
|
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
.Refresh und .RefreshRecord wird von vielen DB-Query-Komponenten unterstützt.
Da wird dann meistens das WHERE erweitert, damit nur der Record getroffen wird und dann nur der geholt. (es gibt nur manchmal Probleme, dass das dann WHERE falsch ist und entweder nichts, oder uviel trifft, was dann in einem "fehlerhaftem" Update endet) Zwei Mal genau das Selbe? Im Prinzip könnte man auch an beide Grids die selbe DataSource oder DataSet anbinden. |
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Zitat:
|
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Dann nimm ein "ordentliches" Grid.
Bei DevExpress braucht man den Filter nicht im DataSet zu machen, sondern kann im DataController des Grids filtern/sortieren. Und man muß den DataSet-Zeiger nicht mit dem ActiveRecord des Grids synchronisieren lassen. (nur beim Editieren würde dann im DataSet gescrollt) |
AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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