Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [ADO] MaxRecords bzw. CacheSize (https://www.delphipraxis.net/179761-%5Bado%5D-maxrecords-bzw-cachesize.html)

Dejan Vu 2. Apr 2014 15:15

AW: [ADO] MaxRecords bzw. CacheSize
 
Schon klar. Aber es ist ein (Konfigurations-)unterschied vorhanden. Der Treiber kann ja funktionieren, aber wenn er unter 64-bit (EXCEL) anders konfiguriert ist, als unter Sage/Delphi-Tool (32-bit), wäre das eine Möglichkeit.

arnof 2. Apr 2014 15:31

AW: [ADO] MaxRecords bzw. CacheSize
 
Zitat:

Zitat von Dejan Vu (Beitrag 1254415)
Schon klar. Aber es ist ein (Konfigurations-)unterschied vorhanden. Der Treiber kann ja funktionieren, aber wenn er unter 64-bit (EXCEL) anders konfiguriert ist, als unter Sage/Delphi-Tool (32-bit), wäre das eine Möglichkeit.

Deshalb hatte ich ja mal nach dem Connectionstring gefragt, da kann man alle Parameter übergeben :roll:

Dejan Vu 2. Apr 2014 15:49

AW: [ADO] MaxRecords bzw. CacheSize
 
Zitat:

Zitat von arnof (Beitrag 1254416)
Deshalb hatte ich ja mal nach dem Connectionstring gefragt, da kann man alle Parameter übergeben :roll:

Logisch. Ich war noch so auf dem blöden BDE gebürstet, hatte ich komplett vergessen.

MrSpock 2. Apr 2014 17:08

AW: [ADO] MaxRecords bzw. CacheSize
 
Zitat:

Zitat von Jumpy (Beitrag 1254390)
Nur Spekulation: Könnte das vllt. auch was 64bit vs. 32bit Problem sein? Excel ist ja vllt. 64bit der Treiber vllt. auch, dein Programm aber nicht?

Nein, man muss das ODBC32ADM.exe Programm auf 64 Bit Systemen verwenden. Das haben wir auch gemacht.

MrSpock 2. Apr 2014 17:12

AW: [ADO] MaxRecords bzw. CacheSize
 
Zitat:

Zitat von arnof (Beitrag 1254354)
Schau Dir mal im Taskmanager deine Exee beim Kunden an, wenn die richtig 2GB geht dann ist OutofM....

Er läd alle Datensätze, wieviele sind das denn 100.000 oder 1.000.000 (Select Count(*) from xxx)

Wie gesagt, es sind 5400 Datensätze, aber wir haben uns den Taskmanager angeschaut. Das System ADO -> ODBC -> KHK MySQL saugt sich voll. Der Speicherverbrauch geht auf 1.8 GB, dann kommt die Fehlermeldung. Selbst wenn ich nur ca. 500 Datensätze einlese (eingeschränkt über die KundenNummer) kommt der Speicherfehler!

Wieso ist das Verhalten anders als bei mir auf dem Einzelplatzrechner :-(

arnof 2. Apr 2014 19:06

AW: [ADO] MaxRecords bzw. CacheSize
 
Zitat:

Zitat von MrSpock (Beitrag 1254433)
Zitat:

Zitat von arnof (Beitrag 1254354)
Schau Dir mal im Taskmanager deine Exee beim Kunden an, wenn die richtig 2GB geht dann ist OutofM....

Er läd alle Datensätze, wieviele sind das denn 100.000 oder 1.000.000 (Select Count(*) from xxx)

Wie gesagt, es sind 5400 Datensätze, aber wir haben uns den Taskmanager angeschaut. Das System ADO -> ODBC -> KHK MySQL saugt sich voll. Der Speicherverbrauch geht auf 1.8 GB, dann kommt die Fehlermeldung. Selbst wenn ich nur ca. 500 Datensätze einlese (eingeschränkt über die KundenNummer) kommt der Speicherfehler!

Wieso ist das Verhalten anders als bei mir auf dem Einzelplatzrechner :-(

Weiter oben hatte ich dir die Lösung geschrieben!

MrSpock 3. Apr 2014 12:33

AW: [ADO] MaxRecords bzw. CacheSize
 
Danke nochmal für den Hinweis. Hatte deinen Beitrag tatsächlich übersehen. :stupid:

Habe mein Testprogramm jetzt gemäß deiner Empfehlung angepasst und es scheint zu funktionieren! Ich habe jetzt nur die Spalten abgerufen, die ich auchtatsächlich benötige. Die letzte Bestätigung brauche ich noch von einem Mitarbeiter, aber es sieht erstmal gut aus!

Unverständlich bleibt für mich, dass der Fehler im ODBC Treiber wohl noch nicht bekannt ist und dass er nur im Kundennetz, aber nicht auf meinem Einplatzrechner auftritt. :gruebel:

arnof 3. Apr 2014 14:05

AW: [ADO] MaxRecords bzw. CacheSize
 
Das Problem hängt an Inhalt des Feldes und tritt nur auf, wenn eine kritische Länge überschritten wird. Wenn Du ein Backup der Datenbank holst, dann wirst Du es sehen!


Hier mal mein Beispiel wie ich das gelöst habe:


Delphi-Quellcode:

 Unit Data.WIN.ADODB

procedure TCustomADODataSet.InternalInitFieldDefs;
...

  procedure AddFieldDef(F: Field; FieldDefs: TFieldDefs);
  var
    ....
    // echte Abfrage
    FieldType := ADOTypeToFieldType(F.Type_, F.Precision, F.NumericScale, EnableBCD);
    // 
    if (F.Name='Problemfeldname') then begin
     FieldType := ftMemo;
    end;

MrSpock 3. Apr 2014 17:32

AW: [ADO] MaxRecords bzw. CacheSize
 
Das habe ich jetzt nicht verstanden. :stupid:

Wo bzw. wie sehe ich das in einem Backup der DB?

Und die Lösung verstehe ich auch nicht. Hast du eine Neue ADO Komponente von der alten abgeleitet und dort die angegebene Methode überschrieben?

Sir Rufo 3. Apr 2014 23:06

AW: [ADO] MaxRecords bzw. CacheSize
 
Zitat:

Zitat von arnof (Beitrag 1254307)
Zitat:

Zitat von MrSpock (Beitrag 1254299)
Leider geht das nicht. Man soll auf die New Classic Line nur mit den mitgelieferten ODBC Treibern von extern zugreifen. Dann ist aber gewährleistet, dass die Tabellen konsistent bleiben, weil SAGE dann eben alle Einträge in den Tabellen entsprechend aktualisiert. Ein direkten Zugreifen auf die MySQL Datenbank wird nicht unterstützt.

Ah, das ist mir zwar schleierhaft, wie das mit dem Treiber zusammenhängen soll. Ist wohl ehr ein Beitrag aus der Märchenstunde. Entweder das überwacht die Datenbank (entsprechendes Design) oder die Applikation. Aber bestimmt nicht der ODBC Treiber :wink:

Nein der ODBC-Treiber überwacht das nicht, aber das womit dieser ODBC-Treiber spricht ... und ich vermute mal, der wird eben nicht direkt mit dem MySQL-Server sprechen ;)
Code:
CL-ODBC-Treiber <-> CL-Server <-> MySQL-Server <-> CL-Datenbank
statt
Code:
MySQL-ODBC-Treiber <-> MySQL-Server <-> CL-Datenbank
Insofern wird der ConnectionString auch sehr unspannend sein, da dieser nur Einstellungen für den CL-ODBC-Treiber beinhalten kann und die haben nun mal nix mit dem MySQL-ODBC-Treiber zu schaffen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.
Seite 4 von 5   « Erste     234 5      

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