AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen
Thema durchsuchen
Ansicht
Themen-Optionen

2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

Ein Thema von BlueStarHH · begonnen am 4. Dez 2016 · letzter Beitrag vom 4. Dez 2016
Antwort Antwort
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 18:26
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 19:04
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)
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 19:08
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: DBGrid.DataSource.DataSet.Refresh; 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.

Elegant ist diese Lösung allerdings sicherlich nicht.

Geändert von nahpets ( 4. Dez 2016 um 19:24 Uhr)
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 19:43
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)
Kann man auch nur den geänderten Record neu laden? Alles neu zu Laden macht ja nicht viel Sinn...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 19:46
.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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Dez 2016 um 19:54 Uhr)
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 19:48
Zwei Mal genau das Selbe?

Im Prinzip könnte man auch an beide Grids die selbe DataSource oder DataSet anbinden.
Das eine Grid hat manchmal noch einen SQL-Filter-Ausdruck und der Datensatzzeiger soll bei beiden auch unterschiedlich sein...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 19:58
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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: 2 DBGrids sollen die selbe Tabelle inkl. Änderungen zeigen

  Alt 4. Dez 2016, 20:08
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)
Ich möchte die Daten erst gar nicht vom Server zum Client übertragen. Daher muss so früh wie möglich gefiltert werden. Das war aber gar nicht die Fragestellung... Ich verwendete übrigens das TcxGrid.

Geändert von BlueStarHH ( 4. Dez 2016 um 20:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:03 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