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
MichaelT

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

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
Online

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

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
Online

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

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
MichaelT

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

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 8. Feb 2019, 11:34
Dann wurde der Datenstand mit dem Ende der Transaktion vermutlich committed, wenn du den Wert nach dem Neustart der Applikation richtig siehst.

Handelt es sich möglw. um ein Ungemach aus dem Eck Transaktion und früher Autocommit?

Ich vermute du arbeitest mit einer Query.

Wenn du mit Post den Satz schreibst dann sieht deine Transaktion zwar den neuen Satz aber alle anderen prinzipiell mal nicht. Das brauche ich dir so mal nicht erzählen.


---

Ich bin ReadCommitted (Oracle).

Beim SQL Server gibt es seit 2005 eine Schraube für eine art Archivelog Mode. Die Sperren beim SQL Server waren mir schon immer suspekt. Das kann man alles zentral konfigurieren. Mit SQL Server habe ich schon lange nichts mehr gemacht. Deswegen traue ich mir auf die Entfernung nicht gut zu raten.

---

NULL und 0 ist ein denke ich ein anderes Thema. Hast du in einer Field Definition eine DefaultExpression definiert?

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.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

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

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 8. Feb 2019, 11:50
Du denkst schon wieder zu weit...
Die Tabelle wo das Locate drauf ausgeführt wird ist eine (sinngemäß) READONLY Table. Das stehen nur Vorgaben drin. Da gibt es kein Commit. Der Datensatzzeiger steht nicht da wo er hin soll...sondern immer auf dem Datensatz 15. Nach einem Neustart der Anwendung wird das Locate anstandslos ausgeführt...nur wie lange.

PS: Ich tausche das Locate durch ein "Gib mir mal den Datensatz" SQL aus.

Das hat nix mit dem Refresh Problem zu tun. (Ich hätte das lieber in seperate Threads gemacht )

Zitat:
NULL und 0 ist ein denke ich ein anderes Thema
...imho ergibt .FieldByName('Blubb').AsInteger bei NULL eine 0
  Mit Zitat antworten Zitat
MichaelT

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

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 8. Feb 2019, 12:14
So in die Richtung?

Der Beitrag wäre spezifisch zu FireDAC.

Bei Devexpress gibt es Myriaden von Anfragen die in diese Richtung gehen.

Beispiel

--

Ich dachte jetzt an ein Delphi TField mit Bezug auf die DefaultExpression.

Du denkst schon wieder zu weit...
Die Tabelle wo das Locate drauf ausgeführt wird ist eine (sinngemäß) READONLY Table. Das stehen nur Vorgaben drin. Da gibt es kein Commit. Der Datensatzzeiger steht nicht da wo er hin soll...sondern immer auf dem Datensatz 15. Nach einem Neustart der Anwendung wird das Locate anstandslos ausgeführt...nur wie lange.

PS: Ich tausche das Locate durch ein "Gib mir mal den Datensatz" SQL aus.

Das hat nix mit dem Refresh Problem zu tun. (Ich hätte das lieber in seperate Threads gemacht )

Zitat:
NULL und 0 ist ein denke ich ein anderes Thema
...imho ergibt .FieldByName('Blubb').AsInteger bei NULL eine 0
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

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

AW: FireDAC, cxGrid, Refresh schägt fehl

  Alt 8. Feb 2019, 12:19
Zitat:
So in die Richtung?
...den Beitrag kenne ich. Aber ja so sieht es aus. Nach dem Umzug auf den anderen Server wird das RefreshExternalData ausgeführt und das Grid zeigt es auch an.
  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 06: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