Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Immer noch Lost Connection ?!?!? (https://www.delphipraxis.net/83950-immer-noch-lost-connection.html)

kluckweb 9. Jan 2007 08:10

Datenbank: MySQL • Version: 5 • Zugriff über: Intranet

Immer noch Lost Connection ?!?!?
 
Hallo zusammen,

ich habe ein wirklich großes Problem, an dem ich noch verzweifel.



Delphi-Quellcode:

  with DATASET.Namensverzeichnis do
   Begin
  DateSeparator := '-';
  ShortDateFormat := 'yyyy/m/d' ;
    active := false;
    SQL.Clear;
    SQL.Add('select concat(beteiligte.adresse," ",beteiligte.strasse)as adresse1,urkunden.urnr,daten.beurkundungstag,urkunden.gegenstand,daten.bemerkungen from beteiligte, urkunden, daten, personen where');
    DATASET.Datenbank.Ping;
    SQL.Add('beteiligte.persid = personen.id and beteiligte.urid = urkunden.id and urkunden.urnr = daten.urnr and urkunden.urjahr = daten.urjahr and');
    DATASET.Datenbank.Ping;
    SQL.Add('daten.beurkundungstag >= "'+  Datetostr(DateTimepicker1.Date)  +'" and daten.beurkundungstag <= "'+  Datetostr(DateTimepicker2.Date)  +'" order by personen.name, urkunden.urnr');
    active := True;
  DateSeparator := '.';
  ShortDateFormat := 'd/m/yyyy' ;
   End;
 //Übergeben der Variablen von .. bis
 DATASET.DruckNamensverzeichnis.Variables.Variables['Datum_vom'] := DateTimepicker1.Date;
    DATASET.Datenbank.Ping;
 DATASET.DruckNamensverzeichnis.Variables.Variables['Datum_bis'] := DateTimepicker2.Date;
 // Erstellung des Reports
 DATASET.DruckNamensverzeichnis.Preview := Hauptfenster.datenNamensverzeichnis1.frxPreview1;
    DATASET.Datenbank.Ping;
 DATASET.DruckNamensverzeichnis.ShowReport();

Und nun passiert folgdenes:

Wenn es mehr als 2.000 Datensätze sind und die Routine wird im Netzwerk ausgeführt, kommt ständig ein Lost-Connection. Der Report wird dann auch nicht mehr zusaammengestellt. Und ehrlich gesagt verzweifel ich langsam aber sicher daran. Mehr Pings kann ich doch nun wirklich nicht mehr einbauen.

Habt Ihr ne Idee woran es liegen könnte?

Vielen vielen Dank für Eure Hilfe.

hoika 9. Jan 2007 08:14

Re: Immer noch Lost Connection ?!?!?
 
Hallo,

Probleme mit einer Datenanbindung werden durch Pings
doch nicht behoben.

Hast du die Query mal ohne das ShowReport laufen lassen ?
Hängt sie dann auch bei > 2000 Datensätzen ?

Zur Not könnte man ein eigenes Dataset füllen (TClientDataSet),
dann wäre die Netzbelastung beim ShowReport 0.


Heiko

kluckweb 9. Jan 2007 08:29

Re: Immer noch Lost Connection ?!?!?
 
Hallo,

Reports habe ich mal rausgenommen. Problem bleibt nach wie vor bestehen.
Aber bei 2000 Datensätzen sollte die blöde SQL Datenbank nun wirklich keine Mucken machen.

Hast DU noch ne andere Idee?

hoika 9. Jan 2007 08:53

Re: Immer noch Lost Connection ?!?!?
 
Hallo,

mal statt DATASET (was ist das überhaupt) ne Query benutzen,
dort UniDirectional, ReadOnly auf True (falls es das gibt)

mal im Serverprotokoll nachschauen

die Query mal mit dem MYSQL-Manager (oder wie das auch immer heisst) prüfen

Indizes zum Beschleunigen usw.

MySQL-Client und Server vergleichen


Heiko

kluckweb 9. Jan 2007 09:06

Re: Immer noch Lost Connection ?!?!?
 
Ich arbeite mit TMySQL Komponenten und wie gesagt. Wenn es weniger als 2000 Datensätze sind funktioniert die ganze Abfrage ja auch.

Ich habe nun mal eine Fehlerprotokollierung eingebaut und der fliegt bei active = true raus.

Die Reports werden nun gar nicht mehr angezeigt, weil ich erstmal auf die Datenzusammenstellung getippt hatte als Fehlerquelle.

Wie kann es denn sein, dass der nun bei active = True; rausfliegt?? Da hat er ja schließlich die ganze Abfrage schon gemacht.

sirius 9. Jan 2007 09:11

Re: Immer noch Lost Connection ?!?!?
 
Falsch.
die Abfrage wird erst bei "active:=true" gestartet. voher stellts du sie nur in einer TStringList innerhalb Delphis zusammen.

hoika 9. Jan 2007 09:49

Re: Immer noch Lost Connection ?!?!?
 
Hallo,

ich hatte das mal mit Interbase.
Ab einem bestimmten Traffic stürzte die Verbindung zusammen.

Es lag am Netzwerk, genauer, der Treiber der Karte des Servers
war von 1999 (es war Win2000 ...).

Nachdem eine andere Karte eingebaut worden war, klappte es.

MySQL hat doch so nen Query-Dingens (analyzer),
packe mal deine Query dort rein
und kuck, ob dass immer noch abstürzt.


Heiko

kluckweb 9. Jan 2007 10:20

Re: Immer noch Lost Connection ?!?!?
 
Hi,

also an der Netzwerkverbindung kann es nicht wirklich liegen, weil ich das Problem sowohl in der wirklichen Umgebung, als auch in der Testumgebung reproduzieren kann.

Das sind zwei völlig unterschiedliche, aber völlig neue Systeme, die in allen anderen Bereichen völlig einwandfrei arbeiten. Es ist nur so, dass diese Abfrage in der Software halt die Umfangreichste ist und dann fliegt der halt raus.

Kann man die Abfragen irgendwie splitten oder sowas, dass der erstmal einen Teil der Abfrage zurückkriegt, dann nicht rausfliegt und so die Abfrage durchführen kann?

hoika 9. Jan 2007 10:43

Re: Immer noch Lost Connection ?!?!?
 
Hallo,

und die Versionen Client/Server ..


Heiko

kluckweb 9. Jan 2007 11:05

Re: Immer noch Lost Connection ?!?!?
 
Die Versionen sind absolut identisch bei den ganzen DataSets.

Und nochmal: Vielleicht hast Du dazu ne Erklärung, weil es für mich ein Rätsel ist.
Wenn es nur 100 Datensätze sind, macht der die komplette Abfrage ohne Probleme. Werden es mehr Datensätze taucht "Lost Connection" auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.
Seite 1 von 2  1 2      

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