Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Schreiben in die Datenbank macht Endlosschleife (https://www.delphipraxis.net/215860-schreiben-die-datenbank-macht-endlosschleife.html)

haentschman 18. Sep 2024 14:31

Datenbank: MSSQL • Version: 2019 • Zugriff über: FireDAC

Schreiben in die Datenbank macht Endlosschleife
 
Hallöle...8-)

gegeben:
* mehrere Arbeitsplätze
* exakt gleiche EXE an jedem Arbeitsplatz
* gleicher Native MSSQL Treiber an jedem Arbeitsplatz
* gleiche Daten aus der selben Tabelle der gleichen Datenbank

Ich habe an einem Arbeitsplatz folgendes Problem:
* jegliche Änderung am gleichen Datensatz -> Speichern bringt eine Endlosschleife (nach 10 Minuten abgebrochen) :kotz:
* reproduzierbar am gleichen Datensatz (an anderen Arbeitsplätzen kann dieser Datensatz gespeichert werden :shock:)
* auch nach dem Speichern an einem anderen Platz kann der geänderte Datensatz nicht gespeichert werden. :shock:
* keine Fehler im Programm, keine Fehler im EventLog


Technologie:

nackige Query mit ExecSQL.


...ich habe keine Idee. :?

Morgen werde ich mal den TimeOut der Datenbank prüfen...ggf. auf kurz setzen. Dann prüfe ich die Größe der Felder...eigentlich kommt dann direkt ein Fehler.

Danke für Infos. :wink:

TomyN 18. Sep 2024 21:16

AW: Schreiben in die Datenbank macht Endlosschleife
 
Gleiche OS Version auf allen Rechnern? Evtl. 32/64 Problematik?

Tritt das Problem bei einem speziellen Datensatz oder bei allen Datensätzen auf?

haentschman 19. Sep 2024 05:54

AW: Schreiben in die Datenbank macht Endlosschleife
 
Moin...8-)

Zitat:

Gleiche OS Version auf allen Rechnern? Evtl. 32/64 Problematik?
W11, 64Bit überall gleich
Zitat:

Tritt das Problem bei einem speziellen Datensatz oder bei allen Datensätzen auf?
...nur ein Datensatz. Alle anderen lassen sich problemlos speichern. In der Zwischenzeit (3 Monate) hatte dieser Arbeitsplatz 3 verschiedene Datensätze die betroffen waren.
PS: In diesem "Modul" werden an diesem Platz ca. 100 Änderungen an verschieden Datensätzen gemacht. Nur dieser eine will nicht.
Zitat:

// korrekt
Distributor: 18.09.2024 14:24:15 - START FOnChangeGridBegin
Distributor: 18.09.2024 14:24:15 - END FOnChangeGridBegin
Distributor: 18.09.2024 14:24:15 - START Database.Write - 9025
Distributor: 18.09.2024 14:24:15 - END Database.Write - 9025
Distributor: 18.09.2024 14:24:15 - START Assign
Distributor: 18.09.2024 14:24:15 - END Assign
Distributor: 18.09.2024 14:24:15 - START FOnChangeGridEnd
Distributor: 18.09.2024 14:24:15 - END FOnChangeGridEnd
------
// Fehler
Distributor: 18.09.2024 14:24:50 - START FOnChangeGridBegin
Distributor: 18.09.2024 14:24:50 - END FOnChangeGridBegin
Distributor: 18.09.2024 14:24:50 - START Database.Write - 7242
Delphi-Quellcode:
procedure TFormDistributorLogic.SaveDistributor;

  function CanSaveHistorie: Boolean;
  begin
    Result := not ((FModifiedDistributor.StateInternType = FOriginalDistributor.StateInternType) and
                   (FModifiedDistributor.ResponsibleTo = FOriginalDistributor.ResponsibleTo) and
                   (FModifiedDistributor.DocumentChoice = FOriginalDistributor.DocumentChoice));
  end;

begin
  if Assigned(FOnChangeGridBegin) then
  begin
    FOnChangeGridBegin(Self);
  end;

  DMZU.Database.Write(FModifiedDistributor, CanSaveHistorie); // Historie siehe DB Trigger
  FDistributorDatasource.Changed := True;
  FModifiedDistributor.IsChanged := False; // setzt auf normal

  FOriginalDistributor.Assign(FModifiedDistributor);

  if Assigned(FOnChangeGridEnd) then
  begin
    FOnChangeGridEnd(Self);
  end;
end;

stifflersmom 19. Sep 2024 06:20

AW: Schreiben in die Datenbank macht Endlosschleife
 
Kann es vielleicht die Technik darunter sein?
Also vielleicht ein Fehler im Netzwerk?
Auch wenn ich mir nicht vorstellen kann, dass das nur einen spezifischen Datensatz betreffen sollte.

Hast Du den SQL-Server schon mal neu gestartet?

fisipjm 19. Sep 2024 06:29

AW: Schreiben in die Datenbank macht Endlosschleife
 
Moin,

Was macht dein FOnchangeGridStart und FOnChangeGridEnd?
hast du irgendwas in Richtung Livebinding auf dem Grid liegen?
Das wird nämlich durch eine Datasource änderung ein GridChange triggern.

Gruß
PJM

haentschman 19. Sep 2024 07:06

AW: Schreiben in die Datenbank macht Endlosschleife
 
Danke...8-)
Zitat:

Was macht dein FOnchangeGridStart und FOnChangeGridEnd?
Delphi-Quellcode:
procedure TfoDistributor.DoOnChangeGridBegin(Sender: TObject);
begin
  if Assigned(FLogic.ModifiedDistributor) then
  begin
    FLogic.DistributorDatasource.LastID := FLogic.ModifiedDistributor.ID;
  end;
  gtvDistributor.BeginUpdate;
end;

procedure TfoDistributor.DoOnChangeGridEnd(Sender: TObject);
begin
  // wichtig!
  gtvDistributor.EndUpdate;
  TToolsDevExpress.SelectRecord(gtvDistributor, 0, FLogic.DistributorDatasource.LastID, null);
end;
Zitat:

hast du irgendwas in Richtung Livebinding auf dem Grid liegen?
nein...Gott sei Dank.:zwinker:

Zitat:

Also vielleicht ein Fehler im Netzwerk?
..die Idee hatte ich auch schon. Früher mal hatten wir auch an einem anderem Platz Probleme mit Daten nicht gefunden (oder so ähnlich)...obwohl das Programm fehlerfrei lief. Vom Schwitch ein neues Kabel gezogen...Fehler weg. Dieser Arbeitsplatz ist aber neu mit neuen Kabeln...was nichts heißen mag. :wink:

Zitat:

Hast Du den SQL-Server schon mal neu gestartet?
Ja. Ohne Erfolg.

Zitat:

Auch wenn ich mir nicht vorstellen kann, dass das nur einen spezifischen Datensatz betreffen sollte.
Das ist auch das was meine Logic nicht versteht. :? Das ist aber so und reproduzierbar...

TomyN 19. Sep 2024 07:18

AW: Schreiben in die Datenbank macht Endlosschleife
 
Hat der Datensatz was besonderes, evtl. Umlaute (Evtl. unterschiedliche Zeichensätze/Sprachen auf den Rechnern?)

haentschman 19. Sep 2024 08:29

AW: Schreiben in die Datenbank macht Endlosschleife
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Hat der Datensatz was besonderes, evtl. Umlaute
ja, bei den anderen Arbeitslätzen aber auch...dort läßt sich das speichern. Unlogisch, ich weiß. :roll:
Zitat:

Evtl. unterschiedliche Zeichensätze/Sprachen auf den Rechnern?
nein...alles nur deutsch.

stifflersmom 19. Sep 2024 09:01

AW: Schreiben in die Datenbank macht Endlosschleife
 
Wenn Du kannst, versuch doch, auch wenn der Rechner neu ist, einen andere Netzwerkkarte und / oder Kabel... oder tatsächlich einen anderen Port auf dem Netzwerkswitch.

haentschman 19. Sep 2024 09:09

AW: Schreiben in die Datenbank macht Endlosschleife
 
Zitat:

einen andere Netzwerkkarte und / oder Kabe
Kabel und in andere Dose mache ich wenn die Mitarbeiterin heute da ist...Spätschicht. Netzwerkkarte und anderen Port auf dem Netzwerkswitch macht unser externer IT Fuzzi...:wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr.
Seite 1 von 2  1 2      

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