Delphi-PRAXiS
Seite 8 von 10   « Erste     678 910      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MySQL via PHP-Tunnel (über eigene libmysql.dll) (https://www.delphipraxis.net/148076-mysql-via-php-tunnel-ueber-eigene-libmysql-dll.html)

sonic 17. Mai 2011 19:52

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo,

ich verwende den PHP-Tunnel mit ZEOS unter Delphi 2006.
Es funktioniert soweit alles sehr gut. Tolle Arbeit!

Große Probleme hab ich allerdings wenn die Internetverbindung bei einem aktiven MYSQL Zugriff
unterbrochen wird. -> Das reicht von Speicherzugriffsverletzungen bis zum kompletten einfrieren
der Applikation.

Ich kann das aus der Entwicklungsumgebung gut nachstellen indem ich die Internetverbindung bei
einer Abfrage einfach trenne. -> leider dürften die Fehler in der libmysql.dll passieren ->
ich lande immer in der CPU - Ansicht...

Hat noch jemand das Problem, bzw. gibt es Lösungsvorschläge?
Ich vermute du möchtest den Source der libmysql.dll nicht freigeben?

Lg Sonic

omata 17. Mai 2011 22:14

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Zitat:

Zitat von sonic (Beitrag 1101434)
Ich vermute du möchtest den Source der libmysql.dll nicht freigeben?

Leider komme ich zur Zeit nicht weiter mit diesem Projekt.

Ich veröffentliche gerne den Quellcode und würde mich sehr freuen, wenn wir gemeinsam zu einer funktionierenden Lösung kommen. Besonders die Unterstützung von DBX4 wäre sehr gut, aber ich komme da einfach nicht weiter.

Bei Veränderungen und/oder Verbesserungen wäre es toll, wenn hier auch diese Korrekturen veröffentlicht würden.

sonic 18. Mai 2011 07:32

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo Omata, danke für die rasche Antwort!

Toll das du den SRC freigegeben hast!
Ich werde gleich mal beginnen die Probleme bei Internetverbindungsunterbrechungen
zu analysieren. Sobald ich Korrekturen habe werde ich sie dir selbstverständlich
übermitteln.

Lg Sonic.

mschaefer 18. Mai 2011 08:32

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo Omata,

komme wohl erst am Wochenende dazu, werde dann aber mit Suche gehen.

Grüße

StefanKortenhaus 24. Mai 2011 11:01

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Danke! Funktioniert astrein mit Delphi 2006 und der Zeos Komponente (6.6.6-stable)
Der Knackpunkt war bei mir, in der sqltunnel.php in der Zeile 252

Code:
$DB = new DbClass('localhost');
das localhost mit der wirklichen IP des Servers zu ersetzen, da der Server wohl kein localhost mag.. ;-)

Great work!

teosuper 16. Jun 2011 15:57

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Ich habe die componenten in Delphi 2007 installiert mit Zeoslib 6.6.6. Das geht gut, bis auf dem Moment wo ich joins verwende, dann knallt es in Zeoslib. (Access violation).

Ich frage mich ob SQL mit joins geht, denke mir dass es am PHP ende nur eine Tabelle ist und frage mich jetzt ob ich vielleicht etwas falsch mache oder auch ob ich irgendwo Hilfe bieten kann.

Gruss,
Teo

omata 16. Jun 2011 20:04

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Wenn du die DB-Verbindung mal über die original DLL herstellst (localhost-Datenbank) funktioniert dann deine SQL-Abfrage? Oder, wenn das nicht geht, weil du lokal keine Datenbank installiert hast: Versuche deine Abfrage mal direkt in PHP zu hinterlegen (eigene Datei auf dem Server) und versuche, ob dein Statement so funktioniert.

Dritte Variante: Zeig mal deine SQL-Anweisung.

teosuper 16. Jun 2011 22:18

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Die query functioniert im PHPAdmin auf der Website einwandfrei.

Ich habe allerdings etwas weiter getestet:

Meine Abfrage im PHPAdmin geht so:

SELECT * FROM sections left join pages on sections.page_id = pages.page_id

Meine Abfrage in Delphi gibt damit eine Access Violation, ich soll die Verbindung trennen und wieder erstellen bevor eine neue Abfrage geht.

Wass mir am Ende eingefallen ist, ist das ausschreiben der Felder meiner Abfrage:

SELECT pages.page_title, sections.page_id FROM sections left join pages on sections.page_id = pages.page_id

und dabei stellt sich dan eraus dass diese Abfrage DOCH functioniert.

Versteht sich dass ich "Select *" bevorzuge obwohl ich zufrieden bin mit einschliessen der Feldnamen.

(entschuldige mein Deutsch).

Ich möchte gerne ein Kompliment machen: ich bin beëindruckt!

Gruss
Teo

sonic 22. Jun 2011 18:39

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo Omata,

ein kurzes Zwischenergebnis, leider bin ich noch nicht zu viel gekommen...

das komplette Einfrieren konnte ich bereits (lösen) ->
Der IdHttp in der DLL hat keinen ReadTimeout definiert, und der wartet dann scheinbar tatsächlich bis in die Ewigkeit. Leider auch wenn die Internetverbindung wieder kommt. Zumindest war das meine Erfahrung.

Die Frage ist natürlich ob der ReadTimout aus der Haupt-Anwendung gesetzt werden kann weil fix einen Wert einzustellen kann bei großen Abfragen natürlich zu Problemen führen.
(für mich habe ich mal _IdHttp.ReadTimeout := 30000 gesetzt, und dann friert's nicht komplett ein)

Einem weiteren Problem bin ich auf der Spur:
Hat man nun einen Timeout, so bekommt man auch in der function mysql_query(Handle: PMYSQL; const Query: PAnsiChar): Integer; die Timeout Exception mit, und es wird Result 1 zurückgegeben.
Trotzdem versuchen die Zeos Komponenten teilweise hartnäckig weiterzumachen:?:... -> Exceptions.

Ich such weiter.
Lg Sonic

Tobinator 14. Aug 2011 13:50

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hi,

ich hab mir die dateien auch mal gezogen und muss sagen, gute arbeit. es funktioniert soweit alles wunderbar, nur eine sache funktioniert bei mir noch nicht so ganz:

wenn ich einfüge oder ändere, wird aus ß ein ? und aus ä ein a usw.

also das SQL-Statement ist noch richtig, nur in der DB kommt was falsches an.

was mache ich falsch? muss ich an den komponenten oder der sqltunnel.php oder vllt. an der db noch was ändern?
oder ist es vllt. noch ein bug in deinem tunnel?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr.
Seite 8 von 10   « Erste     678 910      

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