AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FireDAC, cxGrid, Refresh schägt fehl
Thema durchsuchen
Ansicht
Themen-Optionen

FireDAC, cxGrid, Refresh schägt fehl

Ein Thema von haentschman · begonnen am 7. Feb 2019 · letzter Beitrag vom 8. Feb 2019
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.436 Beiträge
 
Delphi 12 Athens
 
#1

FireDAC, cxGrid, Refresh schägt fehl

  Alt 7. Feb 2019, 08:35
Datenbank: MSSQL • Version: 2017 • Zugriff über: FireDAC
Hallöle...

Ich komme wieder mal mit ausergewöhnlichen Sachen... Ich hoffe auf Ansatzpunkte.

Gegeben:
EINE Exe die auf den Server liegt und von den Clienten gestartet wird.


Native Client unterschiedlich auf den Workstations installiert:

2012
2008
2008 + 2012

SOLL:

Wenn ich einer Workstation einen Datensatz anlege, dann soll er auf der anderen Workstation, nach Refresh, angezeigt werden.

Problem:

Wenn ich einer Workstation einen Datensatz anlege, steht er nach dem Post in der DB.
Auf verschieden Workstations wird das Refresh einfach ignoriert... wie immer auf dem Entwicklungsrechner nicht!
Bei anderen Grids kommt es manchmal vor, das beim Eintragen eines Wertes und dem anschießenden OnChange, das der Lookup Wert aus einer anderen Tabelle nicht korrekt geholt wird. Die Datenmenge wird über Dataset.Locate durchsucht. Es scheint das die Locate Datenmenge immer auf dem selben Datensatz steht.
...Wenn die Anwendung wieder neu gestartet wird, sind alle Werte korrekt in den Grids vorhanden.

Refresh:
cxGrid.DataController.RefreshExternalData; ...wird zwar fehlerfrei ausgeführt, aber das Grid interessiert das nicht. Über den Refresh Button im Grid Navigator funktioniert es. (was ich gesehen habe)

...Ideen?

Geändert von haentschman ( 8. Feb 2019 um 08:25 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#2

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 7. Feb 2019, 09:08
Hmm..

Hat den der MS SQL-Server überhaupt (nutzbare) Events?

Nicht jedes Datenbankssystem kann so etwas.

Es sollte dann auch egal sein, welche DB-Komponenten verwendet werden, denn wenn die Datenbank so was nicht hat, kann auch in der Komponente kein Event zum Refreshen ausgelöst werden.

Somit bliebe nur ein Timer, welcher den Query immer wieder schließt und öffnet.
Ich glaube, das ein Query.Refresh nur die bereits vorhandenen Datensätze aktualisiert (wenn sich dort was geändert hat), jedoch nicht neue holt.

So ist es zu mindestens bei ADO.. (wenn ich mich richtig erinnere..)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.436 Beiträge
 
Delphi 12 Athens
 
#3

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 7. Feb 2019, 09:25
Danke...
Die Software ist die gleiche...und das hat immer funktioniert! Wir sind mit der DB nur auf einen anderen Server umgezogen. Neue Installation (Standard Instanz 2017). Kann das damit zusammenhängen?

Geändert von haentschman ( 8. Feb 2019 um 08:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#4

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 7. Feb 2019, 09:58
Wir sind mit der DB nur auf einen anderen Server umgezogen. Neue Installation (Standard Instanz 2017). Kann das damit zusammenhängen?
Wenn das nur wirklich stimmt, würde ich da auch bei der Fehlersuche ansetzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
558 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 7. Feb 2019, 10:58
Zuvor hat was heute Probleme macht immer funktioniert?

Du verwendest die selben Nativeclients wie zuvor? Auch dort lauert allgemein, losgelöst von diesem Fall, ein wenig ein Potential das Ungemach reproduzierbar im Einzelfall kann bereiten. Dann aber konsistent über alle Anwendungen.

Der Datensatz ist tatsächlich committed?
Und trotzdem ist der neu eingefügte Satz mit DataSet Close und Open nicht sichtbar?


a) Schauen ob der Datensatz mit Dataset Close und Open tatsächlich sichtbar ist und
b) Muss man sich die Settings der Grids und Views anschauen.




Danke...
Die Software ist die gleiche...und das immer funktioniert! Wir sind mit der DB nur auf einen anderen Server umgezogen. Neue Installation (Standard Instanz 2017). Kann das damit zusammenhängen?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.436 Beiträge
 
Delphi 12 Athens
 
#6

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 7. Feb 2019, 11:55
Neuigkeiten:
Wir sind mit der DB wieder auf den alten Server 2012 umgezogen. (noch nicht live aber mit der gleichen Konstellation).
...das Refresh Problem, mit 2 getrennten Workstations, ist nicht mehr an dieser Stelle aufgetaucht. Die Daten werden richtig neu eingelesen.

Das Dataset.Locate macht immer noch Probleme...

Zitat:
a) Schauen ob der Datensatz mit Dataset Close und Open tatsächlich sichtbar ist und
b) Muss man sich die Settings der Grids und Views anschauen.
..so war es. Die Daten lagen nach dem Post in der DB...aber mit Refresh wurden sie nicht abgeholt.

Ich tippe auch inzwischen auf eine Einstellung des SQL Servers. Welche kämen da in Frage?

Zitat:
Wenn das nur wirklich stimmt
...

Geändert von haentschman ( 8. Feb 2019 um 07:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.436 Beiträge
 
Delphi 12 Athens
 
#7

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 8. Feb 2019, 07:57
Was zum grübeln...

[Locate]
Ich konnte das im Screenshot festhalten.
1. Das Locate kommt TRUE zurück (in diesem Falle ist der Suchbegriff "R422D")
2. Der Wert aus der Tabelle wird mit 0 ausgegeben (sollte 2729 sein)
-> kein Wert in der Tabelle hat den Wert 0 (Original NULL)
-> Wert auf -1 geändert, weil ich denke, das der den letzten Datensatz zurückgibt. (Locate sollte aber dann eigentlich False sein)

...ich habe die Anwendung neu gestartet, alles arbeitet wie erwartet.

...jetzt kommt ihr.
Angehängte Grafiken
Dateityp: jpg Fehler 1.jpg (86,9 KB, 15x aufgerufen)
Dateityp: png Fehler 3.png (29,1 KB, 14x aufgerufen)

Geändert von haentschman ( 8. Feb 2019 um 08:22 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 10:05 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-2025 by Thomas Breitkreuz