[Erledigt] Zeos schmiert ab

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.

Re: Zeos schmiert ab

Beitragvon af0815 » 24. Aug 2018, 14:09 Re: Zeos schmiert ab

Frage, wenn du in den Daten KEINE Umlaute oder Sonderzeichen hast, geht es dann ?! Nicht das es zu Problemen wegen ClientCodepage und ControlsCodepage gibt.

Weil in der fraglichen Routine wird auf das was die Connection erwartet umcodiert. Im Aufrufstack sieht man die Zeilennummern und auch welche Source genutzt wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon MacWomble » 24. Aug 2018, 15:48 Re: Zeos schmiert ab

Bin zwar nur kurz im Büro, aber die Frage fand ich jetzt auch interresant - aber leider liegt es daran wohl auch nicht.
Wenn ich später zurück bin, prüfe ich dennoch auch mal die Einstellungen diesbezüglich in den Datentabellen.

... in der Datenbank ist alles UTF8
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon charlytango » 25. Aug 2018, 09:44 Re: Zeos schmiert ab

Hi,
da mein Thema auch Datenbanken sind lese ich solche Threads wie hier aufmerksam mit.
Nachdem ich aber kein Crack in den Interna von ZEOS oder FPC bin einfach meine 2cents:

MacWomble hat geschrieben:Nein, dann kommt der Fehler eben nicht.
Er tritt ja auch nicht auf allen meinen Forms auf, sondern nur auf Auftrag, Artikel und Auftragsposition.
Die anderen Forms gehen alle.
Alle Forms sind identisch aufgebaut, das habe ich eben nochmals überprüft. Die Routine ist immer wie im ersten Beitrag des Threads.
Ebenfalls identisch sind die Eigenschaften in TZQuery und Datasource.
... und wie schon mehrfach erwähnt: mit der älteren ZEOS-Version funktioniert alles!


Die Forms scheinen bis auf einige wenige ja zu funktionieren.
Mir fiel auf dass im ganzen Thread nie ein SQL-Monitoring erwähnt wurde.
Besonders mit ZEOS verwende ich standardmäßig den SQL-Monitor den ich die Statements im Debug-Fall in eine Datei schreiben lasse.
Oft hilft auch ein serverseitiges SQL-Monitoring.

Möglicherweise liegt es an den Daten und den SQL-Statements wenn alle anderen Forms funktionieren.

.. just 2 cents ;)
charlytango
 
Beiträge: 134
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: Laz 1.8 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

Beitragvon MacWomble » 25. Aug 2018, 09:50 Re: Zeos schmiert ab

Danke für den Hinweis.
Doch, das Monitoring (ZEOS-Monitor) läuft mit, zeigt aber im Moment des Problems nichts an.

Irgendwo habe ich das auch mal erwähnt.

Serverseitig müsste ich mal prüfen ...

Das SQL-Statement ist einfach 'Select * from Auftraege Where idauftrag = 10', da kann man im Prinzip ja nichts verkehrt machen. Über ein DataSource wird das an die Editfelder gebunden - thats all. Die Query wird ausgeführt, die Daten werden angezeigt. Wenn ich nun im DBNavigator, der ebenfalls über die DataSource zugreift, auf Edit und dann auf Post klicke, knallt es schon.

Es funktioniert ja auch mit der älteren ZEOS-Komponente ohne Probleme!

Das Programm arbeitet mit UTF8, die Datenbank ist entsprechend eingestellt, passt also auch. Besondere Felder werden in der Datenbank ebenfalls nicht verwendet, bei Artikel sind es nur VarChars und Decimal. (Ich hatte Date im Verdacht, aber das gibt es in Artikel nicht, in Auftrag schon). Index auf PrimaryKey ist vorhanden, weiter Indizes brauche ich hier nicht, da ich über den Key selektiere.

Ich werde jetzt mal versuchen, die Eingabe-Felder alle von der Datenbank zu lösen und eins nach dem anderen wieder anzubinden - vielleicht finde ich ja da etwas heraus. Aber meine Hoffnung ist gering.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon MacWomble » 25. Aug 2018, 10:14 Re: Zeos schmiert ab

Alle Felder von der DataSource gelöst und im DBNavigator Edit - Post geklickt: Fehler tritt ebenfalls auf.

Aber ich habe es endlich geschafft, im Assemblerfenster eine Ausgabe zu sehen. Eventuell kann man da etwas interpretieren:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon af0815 » 25. Aug 2018, 14:02 Re: Zeos schmiert ab

Nein, da sieht man nichts. Der letzte Aufrufstack war da viel aussagekräftiger. In der Routine SetPAnsiChar in ZDBCChache ab Zeile 4120 geht was schief. Deswegen sieht man im SQLMonitor und sicher auf der DB nichts. Das ist der Zeitpunkt wo das Recordset für den Server hergestellt wird. Soweit ist ja alles noch klar. Auch sieht man, das im String Umlaute vorhanden sind, deswegen bin ich schon mal vorsichtig, da habe ich schon meine Probleme erlebt :-)

Nur da müsste man Anfangen zu Debuggen und einen Breakpoint setzen, dann untersuchen was die Ursache sein könnte. Vor allen ist da die Umwandlung einen PAnsiChar, ist das Feld überhaupt das oder ist es ein AnsiString opder ein UTF8String. Vielleicht ist in der Zuordnung der Felddefinition da schon früher was daneben gegangen.

Aktuell kann ich nur sagen, da eine ist eine sehr frühe 7.3 testing, die jetzt mit der stabilen 7.2.4 verglichen wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon MacWomble » 25. Aug 2018, 18:33 Re: Zeos schmiert ab

So, ich habe nun noch etwas weiter gesucht und folgenden Unterschied zwischen der bei mir funktionierenden Version und der aktuellen gefunden.
In ZdbcCache.pas:

... siehe übernächsten Post!

PS: Bevor sich jemand wegen Doppelpost beschwert: Im Zeosforum hat man mich darum gebeten, dort nochmals alles zu beschreiben, da im Lazarusforum derzeit keine Neu-Anmeldung möglich ist und der Maintainer hier keinen Account hat.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von MacWomble am 25. Aug 2018, 18:57, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon af0815 » 25. Aug 2018, 18:49 Re: Zeos schmiert ab

Das ist nicht 100 prozent die gleiche funktion, sieh dir die Parameter an und bei der ersten Variante wird auf eine Erweiterte verwiesen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon MacWomble » 25. Aug 2018, 18:51 Re: Zeos schmiert ab

:oops:

Da war ich zu schnell - du hast natürlich recht!

Der alte Code sieht an betreffender Stelle so aus: (funktioniert)
Code: Alles auswählen
 
    stUnicodeStream, stAsciiStream:
      begin
        Blob := GetBlob(ColumnIndex, IsNull{%H-});
        if Blob.IsClob then
          Blob.SetPAnsiChar(Value, ConSettings^.ClientCodePage^.CP, Len^)
        else
          Blob.SetBuffer(Value, Len^);
      end;
 


der neue dagegen: (verursacht Absturz)
Code: Alles auswählen
 
    stUnicodeStream, stAsciiStream:
      if (Data^ = nil) then
        PIZLob(Data^)^ := TZAbstractCLob.CreateWithData(Value, Len^, ConSettings^.ClientCodePage^.CP, ConSettings)
      else if PIZLob(Data^)^.IsClob then  // in dieser Zeile tritt das Problem tatsächlich auf (Zeile 4120) - beim Bearbeiten eines TDBMemo
        PIZLob(Data^)^.SetPAnsiChar(Value, ConSettings^.ClientCodePage^.CP, Len^)
      else
        PIZLob(Data^)^.SetBuffer(Value, Len^);
 
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon MacWomble » 26. Aug 2018, 07:05 Re: Zeos schmiert ab

So, ich habe das Problem jetzt lokalisiert. Es passiert dann, wenn ich in der Datenbank Felder als Mediumtext definiert habe!

Es sieht so aus, als würden alle MySQL-Stringtypen außer Char, Text und Varchar in das Problem laufen. Es ist also anscheinend ein Fehler mit Mediumtext, TinyText, Blobs in der ZEOS-Library.
Ich werde das im ZEOS-Forum weiter ausdiskutieren und schließe diesen Thread hier ab.

http://zeoslib.sourceforge.net/viewtopi ... 15#p101415

Vielen Dank für die richtungsweisenden Hinweise!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon MacWomble » 28. Aug 2018, 10:43 Re: [Erledigt: zu ZEOS verlagert] Zeos schmiert ab

PilotLogic hat mir eine funktionierende ZEOS-Komponente (wohl aus der aktuellen ZEOS SVN) zugesandt. Es funktioniert wieder alles.

ZeosDBO_SVN_5018
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 610
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Datenbanken



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste

porpoises-institution
accuracy-worried