Delphi-PRAXiS
Seite 1 von 3  1 23      

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)

omata 22. Feb 2010 02:25


MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Liste der Anhänge anzeigen (Anzahl: 7)
Dieses Projekt ermöglicht den Zugriff auf eine MySQL-Datenbank über ein PHP-Skript.

Dabei werden folgende Punkte untersützt:
  • Lesender Zugriff
  • Schreibender Zugriff
  • Transactionsteuerung
  • Auslesen von Systeminformationen
  • Funktioniert auch im Designmodus von Delphi
  • Stellt den Zugriff über TDataset zur Verfügung, damit können alle normalen Datenbankkomponenten verwendet werden

SirThornberry 22. Feb 2010 06:47

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Finde ich sehr interessant :-D Was hältst du von dem Gedanken das wir das ganze nach OpenSource verschieben? Oder lieber Freeware?
Denn hier in der Datenbanksparte habe ich die Befürchtung das es früh oder später untergeht.

RWarnecke 22. Feb 2010 07:01

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

ich kann mich Jens nur anschliessen. Ich wollte gerade die Demo mal testen und habe auf zwei Webspace die Meldung erhalten, dass mein Benutzername und/oder meine Passwort falsch wären. Ich habe aber die Daten direkt aus meiner Datei vom Webspace genommen.

Edit:
---------------------------
Demo
---------------------------
dbExpress-Fehler: Ungültiger Wert für Anwendername oder Passwort.
---------------------------
OK
---------------------------

user0815 22. Feb 2010 07:42

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hatte eine Fehlermeldung beim compilieren (Delphi 7):

Zitat:

[Fataler Fehler] MainU.pas(12): Unit SqlExpr wurde mit einer unterschiedlichen Version von SqlConst.SNOERROR compiliert
da ich nicht glaube das ich der einzige bin, hier die Abhilfe:

Zitat:

readme_upd1.txt (im Delphi Verzeichnis: \Borland\Delphi7)

UPDATING LOCALIZED VERSIONS OF DELPHI 7

* This update can be applied only to the English version of
Delphi 7. There are separate updates for the German, French
and Japanese versions of Delphi 7.

* This update provides new localized versions of the SqlConst
files. After installing the update, backup and delete the
following files from the Delphi 7 installation folder:

Lib\Debug\SqlConst.dcu
Lib\SqlConst.dcu
Source\Vcl\SqlConst.pas

and then remove the appropriate locale extension (.de, .fr, or
.jp) from the new SqlConst files in the same folders. For
example, for the French version of Delphi, rename
SqlConst.dcu.fr to SqlConst.dcu.

omata 22. Feb 2010 10:52

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
@SirThornberry:
Ok, ich denke Freeware ist da dann wohl der bessere Platz. Danke :thumb:

@RWarnecke:
Leider wurde beim Anmelden die Fehlermeldung des Skriptes nicht weiter durchgereicht und nur eine Standardfehlermeldung ausgegeben. Habe ich geändert, bitte nochmal testen. :coder: Vielleicht kommt jetzt ja eine etwas aussagekräftigere Fehlermeldung.

@user0815:
Danke für deinen Hinweis. Aber das kann doch nicht an meinem Quellcode gelegen haben? Den hast du doch selber kompiliert und da verwendest du doch die Units deines Systems (im speziellen die von dbExpress). Das kann doch nur bedeuten, dass dbExpress bei dir vorher auch schon nicht funktioniert haben kann. Oder verstehe ich da jetzt was falsch? :gruebel:

RWarnecke 22. Feb 2010 12:11

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

Zitat von omata
@RWarnecke:
Leider wurde beim Anmelden die Fehlermeldung des Skriptes nicht weiter durchgereicht und nur eine Standardfehlermeldung ausgegeben. Habe ich geändert, bitte nochmal testen. :coder: Vielleicht kommt jetzt ja eine etwas aussagekräftigere Fehlermeldung.

Danke omata, werde ich heute Abend ausprobieren, da ich gerade keinen Rechner mit einem direkten Zugriff auf's Internet habe. Wenn ich das ganze beim Überfliegen heute morgen richtig verstanden habe, brauche ich nur die beiden DLL's und die PHP-Datei und könnte dann das ganze in ein eigenes Programm einbauen. Habe ich das soweit richtig verstanden ?

user0815 22. Feb 2010 12:16

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Delphi 7 General Update 7.1 / Professional / German

Ich meine das liegt an dem Delphi Update auf Version 7.1

Zitat:

AKTUALISIEREN LOKALISIERTER VERSIONEN VON DELPHI 7

* Dieses Update kann nur auf die deutsche Version von
Delphi 7 angewendet werden. Für die englische, die
französische und die japanische Version von Delphi 7
gibt es separate Updates.

* Dieses Update stellt neue lokalisierte Versionen der
SqlConst-Dateien bereit. Nach der Installation des
Updates sollten Sie die folgenden Dateien sichern und
aus dem Installationsverzeichnis von Delphi 7 löschen:

Lib\Debug\SqlConst.dcu
Lib\SqlConst.dcu
Source\Vcl\SqlConst.pas

Anschließend entfernen Sie die entsprechende Länder-
Dateinamenerweiterung (.de, .fr oder .jp) von den
neuen SqlConst-Dateien in denselben Verzeichnissen.
Für die deutsche Version von Delphi beispielsweise
benennen Sie SqlConst.dcu.de in SqlConst.dcu um.

omata 22. Feb 2010 12:31

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

Zitat von RWarnecke
Wenn ich das ganze beim Überfliegen heute morgen richtig verstanden habe, brauche ich nur die beiden DLL's und die PHP-Datei und könnte dann das ganze in ein eigenes Programm einbauen. Habe ich das soweit richtig verstanden ?

Ja das ist korrekt. Man kann sogar erst mal lokal beim Entwickeln direkt auf der eigenen Datenbank arbeiten und erst später die DLL austauschen, um auf die entfernte Datenbank zuzugreifen. Programmseitig ist nichts (außer den Anmeldedaten) zu verändern.


Zitat:

Zitat von user0815
Ich meine das liegt an dem Delphi Update auf Version 7.1

Das habe ich schon verstanden, nur verstehe ich nicht warum das eigentlich nötig ist bzw. mein Quellcode kann da nicht das Problem sein. Es kann ja nur daran liegen, dass ich dbExpress verwende und das das eben nicht richtig funktioniert. Trotzdem verstehe ich die von dir angegebene Fehlermeldung nicht. Wie kann etwas mit unterschiedlichen Versionen kompiliert sein, wenn ich nur Quellcodedateien liefere?
Wie auch immer, vielen Dank für deinen Hinweis.

RWarnecke 22. Feb 2010 17:38

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

ich habe den Download aus Beitrag #1 nochmals neu heruntergeladen. Aber trotzdem bekomme ich immer noch den gleichen Fehler aus Beitrag #3. Ich benutze die Demo aus dem Verzeichnis 2.5, 3.0.

omata 22. Feb 2010 17:48

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
So ich konnte das reproduzieren und habe noch was geändert. Der besagte Fehler kam allerdings nur, wenn die URL nicht richtig war. Ruf mal bitte das Skript über einen Browser auf, dann sollte dort "Unbekannter Fehler" stehen.

Ist die URL falsch, so kommt jetzt auch ein aussagekräftigerer Fehlerhinweis.

Sorry für die Probleme.

RWarnecke 22. Feb 2010 17:54

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Download wieder im Beitrag #1 ?

omata 22. Feb 2010 18:02

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

Zitat von RWarnecke
Download wieder im Beitrag #1 ?

Ja

RWarnecke 22. Feb 2010 18:07

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Also, irgendwie funktioniert Dein Upload im Beitrag #1 nicht, da ich immer die gleichen Dateien runterlade. Ich bekomme immer noch den gleichen Fehler.

omata 22. Feb 2010 18:12

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Das ist sehr schade. Bei mir funktioniert das jetzt wunderbar. Kannst du das Skript über den Browser aufrufen?

Edit: Wobei ich das nur mit Delphi 7 und Delphi 2009 testen kann.

RWarnecke 22. Feb 2010 18:15

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

Zitat von omata
Kannst du das Skript über den Browser aufrufen?

Ja, aber es wird mir nur eine weiße Seite angezeigt. Könntest Du mir vielleicht bitte mal eine aktuelle Version per PN schicken. Vielleicht klappt es da ja besser.

RWarnecke 23. Feb 2010 04:55

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Als kleine nette Erweiterung, wäre hier noch die Option "Datenbankserver". Bei manchen Webspace muss man statt localhost explizit einen anderen Datenbankserver angeben, damit man einen Zugriff auf seine MySQL-Datenbank erhält.

user0815 23. Feb 2010 07:03

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Funktioniert wunderbar. Habe es eben mit beiden PHP 4/5 Dateien ausprobiert.
Man muss nur an das http:// vor localhost denken, sonst geht es nicht.
:thumb:
THX
user0815

movietigger 23. Feb 2010 13:31

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
:-D :-D
Das klappt ja hervorragend! Ich bin begeistert von dieser Lösung...
Endlich kann ich ohne Webbrowser auf meine Datenbanken bei meinem Provider zugreifen...

Einzig der Zugriff auf TEXT/MEDIUMTEXT/LONGTEXT und BLOBS ist nicht möglich, kann ich aber verschmerzen...

Ansonsten eine TOP-Lösung!

waldforest 24. Feb 2010 21:10

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo,
erst mal danke, klappt super. Leider nutze ich auch einen Server, der anstelle der localhost eine andere Serveradresse wie bei zu #16,Datenbankserver" beschrieben benötigt.

Was muss man wo wie ergänzen.

Ich habe es selber einmal versucht,und habe FloginU erweitert.

Delphi-Quellcode:
procedure TFLogin.Execute(SQLConnection: TSQLConnection);
begin
  EdURL.Text:=SQLConnection.Params.Values['Hostname'];
  EdDatabase.Text:=SQLConnection.Params.Values['Database'];
  EdUsername.Text:=SQLConnection.Params.Values['User_name'];
  EdPassword.Text:=SQLConnection.Params.Values['Password'];
  EdHost_adr.Text:=SQLConnection.Params.Values['host_adr'];

  if Self.ShowModal = mrOk then begin
    SQLConnection.Params.Values['Hostname']:=trim(EdURL.Text);
    SQLConnection.Params.Values['Database']:=trim(EdDatabase.Text);
    SQLConnection.Params.Values['User_name']:=trim(EdUsername.Text);
    SQLConnection.Params.Values['Password']:=trim(EdPassword.Text);
    SQLConnection.Params.Values['host_adr']:=trim(EdHost_adr.Text);
    SQLConnection.Open;
  end;
end;
aber bekomme den Parameter 'host_adr' nicht in mein PHP-Scipt übertragen.

Im PhP habe ich folgende Ergänzungen eingetragen,
Delphi-Quellcode:
 private function Init() {
    if (isset($_POST['id'])) {
      $_REQUEST[session_name()] = $_POST['id'];  
      session_start();
      if (isset($_SESSION['init']) && $_SESSION['init']) {
         return $this->connect($_SESSION['user'], $_SESSION['pass'], $_SESSION['db'], $_SESSION['host_adr']);
      }
      $this->ERROR = 'Fehler bei der Initialisierung.';
    } else {
      session_start();
      if (isset($_POST['command']) && $_POST['command'] == 'connect') {
        if (   isset($_POST['user'])
            && isset($_POST['pass'])
            && isset($_POST['db'])
            && isset($_POST['host_adr'])
           )
        {
          if ($this->connect($_POST['user'], $_POST['pass'], $_POST['db'], $_POST['host_adr'])) {
            $_SESSION['init'] = true;
            $_SESSION['user'] = $_POST['user'];
            $_SESSION['pass'] = $_POST['pass'];
            $_SESSION['db'] = $_POST['db'];
            $_SESSION['host_adr'] = $_POST['host_adr'];          
            $this->ID = session_id();
            return true;
          }
        }
      }
    }
    return false;
  }

   private function connect($user, $pass, $database, $host_adr)
   {
      $this->db = mysql_connect($host_adr, $user, $pass);
werde aber mit Scriptfehler abgewiesen, da natürlich die host_adr über die libmysql.dll nicht übertragen wird. Würdest du du den Code für die dll auch noch einstellen, oder die DLL anpassen ?

omata 24. Feb 2010 22:05

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Schön das die Lösung auch bei euch funktioniert.

Zitat:

Zitat von movietigger
Einzig der Zugriff auf TEXT/MEDIUMTEXT/LONGTEXT und BLOBS ist nicht möglich...

Das werde mich mir nochmal ansehen.

Zitat:

Zitat von waldforest
Leider nutze ich auch einen Server, der anstelle der localhost eine andere Serveradresse ... benötigt.

Kann man dann nicht im PHP-Skript anstelle von localhost eben die nötige Serveradresse eintragen? Warum muss man das vom Delphiprogramm aus machen können. Sorry, aber das verstehe ich noch nicht so ganz.

Zitat:

Zitat von waldforest
Würdest du du den Code für die dll auch noch einstellen, oder die DLL anpassen ?

Ich kann an der Struktur der DLL ja nichts ändern, sonst wäre es ja kein MySQL-DLL-Klone mehr. Und da die DLL-Struktur diese Angabe nicht kennt, kann ich auch nicht dafür sorgen, dass diese Information an das PHP-Skript übergeben wird.

Das einzige, was möglich wäre, ist diese zusätzliche Information über den Hostname- oder die Database- Information mit einer speziellen Notation mit zu übergeben.

Aber wie gesagt, ich verstehe nicht so ganz, warum das über das Delphiprogramm erfolgen soll. Gibt es den auf ein und dem selben Server die Notwendigkeit über ein und das selbe Skript mehrere Serveradressen angegeben zu können?

Vielleicht könnt ihr mir das nochmal ausführlicher erklären.

Valle 24. Feb 2010 22:15

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

ich habe mir das PHP-Script eben mal angeschaut und bin dabei auf einen kleinen Gedankenanstoß gekommen. Wie wäre es, statt den MySQL-Funktionen die Socket-Funktionen zu nutzen und so PHP quasi als Proxy zu verwenden? Dies hätte den Vorteil, dass man sich mit MySQL selbst kaum befassen muss und bei richtiger Implementierung alle vorhanden Features gleichzeitig abdeckt. Nachteil ist, dass die Socket-Funktionen nicht überall verfügbar sind.

Interessant wäre auch der Vergleich beider Möglichkeiten, v.a. hinsichtlich der Geschwindigkeit - sowohl die Ausführzeit auf dem Server, als auch der produzierte Traffic. Also wenn du mal Lust hast, dein Projekt weiter auszubauen, hättest du hier eine Möglichkeit. :-)

Liebe Grüße,
Valle

waldforest 25. Feb 2010 17:15

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo,
Sicher mit dem Gedankenastoß :gruebel: die Adresse im Script zu implementieren sind auf einmal alle "Sorgen" verschwunden

Manchmal ist die Lösung gedanklich so weit weg, und die Antwort so nah :wall: :wall: .

Valle 25. Feb 2010 17:33

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

ich weiß erlich gesagt nicht so genau, was du mir mit deinem Post sagen willst. Also ich bin mir schon recht sicher mit meinem Gedankenanstoß, ich wüsste auch nicht, warum ich das nicht sein sollte. Was für eine Adresse du meinst weiß ich leider nicht. :duck:

Liebe Grüße,
Valle

waldforest 25. Feb 2010 17:36

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo,
nein dein Gedankenanstoß war genau der Richtige, funktioniert auch alles super. Keine weiteren Verbesserungen nötig.

Ich hätte da eigentlich selber drauf kommen können. Ich habe mal wieder zu kompliziert gedacht !!

Valle 25. Feb 2010 17:38

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Achso! :)

Heißt dass, dass du meine Idee bereits implementiert hast?
Oder funktioniert sie nur "im Gedanken"? ;-)

Liebe Grüße,
Valle

waldforest 25. Feb 2010 17:41

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Funktioniert !!! :thumb: :thumb:

Nochmals vielen Dank !!!

omata 25. Feb 2010 19:19

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Meine Güte ihr redet ja völlig aneinander vorbei! Bitte lest nochmal (in aller Ruhe und vollständig) was ihr da eigentlich geschrieben habt!

@waldforest: Schön, dass meine Überlegung nicht ganz falsch war und das das jetzt klappt.

@Valle: Das ist ja eine schöne Idee und ich freue mich, wenn du da mal eine Lösung präsentierst. Aber ich glaube nicht das das geht. Wie soll das auf der Serverseite funktionieren? Da bekommt man nur Zugriff auf die Datenbank über z.B. PHP und die dortigen Funktionen, wie du da direkt auf den TCP/IP-Port von der MySQL-Datenbank zugreifen willst ist mir ein Rätsel. Oder kannst du mal ein Beispiel-Skript erstellen, das eben genau das zeigt (nur ganz einfach über PHP-Sockets eine SELECT-Anweisung abschicken und ausgeben). Wobei ich ja noch mehr mache als nur die Kommunikation bereit zustellen. Um Transaktionen zu realisieren kann kein einfacher Verbindungsaustausch alla Proxy realisiert werden, weil eben nach jeder Abfrage die MySQL-Session geschlossen wird. Da ist etwas mehr "Intelligenz" erforderlich. Gut, wenn man das nicht haben will, dann kann dein Vorschlag natürlich auch theoretisch funktionieren. Aber wie konkret?

Valle 25. Feb 2010 19:58

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Sorry waldforest, aber ich glaube omata hat Recht: Irgendwie reden wir aneinander vorbei. :mrgreen:

Omata, ich habe eben versucht damit anzufangen meine Idee zu implementieren, bin dann aber leider darauf gestoßen, dass die Umsetzung mit mod_php und wahrscheinlich auch mit PHP allgemein nicht funktionieren wird. Das Problem ist, dass man das Socket, über welches der Apache mit dem Browser kommunziert nicht wie ein normales Socket verwenden kann. Wir brauchen ja einen bidirektionalen Stream, um Daten mit PHP Daten zu empfangen und zum Client zurück zu schicken. Die Kommunikation mit dem MySQL-Server selbst ist nicht das Problem: Socket-Funktionen

Also das Problem ist wohl HTTP. Schade, denn die Sache klang so eigentlich ganz interessant. Mal sehen, ob mir da noch was anderes einfällt. Die Idee alle MySQL-Funktionen quasi als Interface zu implementieren funktioniert zwar, aber ich strebe lieber allgemeinere Möglichkeiten an, die ein Einarbeiten in MySQL komplett unnötig machen. ;-) Ansonsten hast du natürlich gute Arbeit geleistet!

Liebe Grüße,
Valle :?

omata 25. Feb 2010 20:07

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

Zitat von Valle
Also das Problem ist wohl HTTP. Schade, denn die Sache klang so eigentlich ganz interessant. Mal sehen, ob mir da noch was anderes einfällt. Die Idee alle MySQL-Funktionen quasi als Interface zu implementieren funktioniert zwar, aber ich strebe lieber allgemeinere Möglichkeiten an, die ein Einarbeiten in MySQL komplett unnötig machen. ;-)

Naja meistens ist nunmal MySQL auf solchen Webseiten als einzige Datenbank vorhanden. Von daher ist nunmal ein Einarbeiten notwendig und mittlerweile ist MySQL ja auch so brauchbar geworden, dass man das Datenbank nennen kann und das da auch Standards richtig funktionieren.
Und natürlich kann man auch alles selber machen, aber hier war ja gerade die Idee, dass man die Datenbankkompoenten, die auf TDataSet aussetzen verwenden kann. Das bekommt man eben nicht so ohne weiteres hin, wenn man alles selber macht.

Aber wie auch immer, es war ja auch nur so eine Idee, Machbarkeit ist zumindest bewiesen.

Valle 25. Feb 2010 20:14

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Mh sorry, da habe ich mich wohl etwas unklar ausgedrückt.

Was ich mit Einarbeitung in MySQL meinte, war etwas anderes. Ich selbst habe schon einiges an Erfahrung mit MySQL gesammelt, schließlich bin ich schon einige Jahre in der Webprogrammierung unterwegs. Was ich meinte, war die Standard libmysql.dll von Delphi direkt mit dem MySQL kommunzieren lassen. Quasi über eine Art Socket Proxy. Somit muss man im PHP-Script keine Funktionen a "mysql_query" usw. bereitstellen. Das PHP-Script sollte dann nur dafür sorgen, dass MySQL-Server und Delphi-Client ordentlich miteinander kommunizieren können. Wenn man das richtig macht, dann ist das Script auch für alles mögliche benutzerbar, also z.B. HTTP-Proxys usw.

Hoffe ich hab's jetzt besser formuliert - wenn nicht, dann sollte ich es für heute glaub' ich sein lassen. :duck:

Liebe Grüße,
Valle

DP-Maintenance 1. Mär 2010 06:04

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Datenbanken" nach "Freeware" verschoben.
Auf Wunsch des Thread-Erstellers nach Freeware verschoben.

omata 4. Mär 2010 22:42

Re: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
So habe eine neue Version (siehe #1) hochgeladen.

Jetzt werden auch "große" Datentypen sowie Lazarus unterstützt.

Beispiele wurden auch erweitert.

nytaiceman 5. Aug 2010 13:20

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

ich habe mir das Projekt heruntergeladen und mit Delphi 2010 kompiliert, soweit so gut.
Wenn ich beim Login auf Connect klicke, erscheint aber eine Meldung über eine falsche oder nicht vorhandene libmysql.dll.
Genauer:
Code:
Cannot load LIBMYSQL.dll library (error code0). The LIBMYSQL.dll library may be missing from the system path or you have an incompatible version of the library installed
Die geforderte .dll liegt im selben Verzeichnis wie die Demo.exe. Unter Windows oder Windowssystem32 ist keine andere Version der .dll vorhanden.

Die .dll hat die Version: 2.10.3.4


Danke bereits für eure Hilfe. :thumb:

mkinzler 5. Aug 2010 13:41

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Vielleicht erwartet das Programm eine höhere Version der Dll

himitsu 5. Aug 2010 13:58

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Liste der Anhänge anzeigen (Anzahl: 1)
die libmysql im Delphi2007-Ordner sagt sie wäre eine Version 0.0.0 ... eventuell ist das ja schon das Problem?

die mysql_get_client_version.exe im selben Verzeichnis gestartet, wie die libmysql.dll zeigt die MySQL-Client-Version an.

Ich seh aber grad keine Quellcodes dieser DLLs, drum kann kann da nicht nachsehn.
Es sind natürlich (vermutlich/bestimmt) Spezialversionen der libmysql, so daß ich jetzt auch keine zum Austauschen anbieten kann.

omata 9. Aug 2010 21:59

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe mal eine neue DLL kompiliert und es wird nun die Version 50022 zurückgegeben. Vielleicht klappt das ja dann.

NetSonic 12. Aug 2010 11:58

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

ich habe ein Problem mit der Verbindung zum SQL-Tunnel über die Zeos-Komponenten.
Ich versuche die Verbindung mit folgendem Code herzustellen, allerdings bekomme ich immer als Rückmeldung "'' ist kein gültier Integerwert". Mit den DBExpress-Komponenten funktioniert alles ohne Schwierigkeiten.

Delphi-Quellcode:
ZConnWeb.Protocol := 'mysql';
ZConnWeb.HostName := 'http://www.xxxxxxxxxx.xx/sqltunnel.php';
ZConnWeb.Port := 3306;
ZConnWeb.Database := 'xxxxxxxx';
ZConnWeb.User := 'xxxxx';
ZConnWeb.Password := 'password';
ZConnWeb.Connected := True;
try
   ZConnWeb.Connected := True;
except
   on E:Exception do
   MessageDlg(E.Message, mtError, [mbOK], 0);
end;
ZQueryWeb.SQL.Text := 'SELECT * FROM users';
ZQueryWeb.Open;
Gruß
NetSonic

omata 12. Aug 2010 12:08

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Hallo, ich habe mir das schon angesehen. Zeos ist da nicht so leicht zu manipulieren. Ich bin aber schon weiter gekommen, eine Anmeldung und das Auslesen der enthaltenen Tabellennamen ist schon möglich. Das Ausführen einer Abfrage leider noch nicht. Aber ich arbeite daran.

Mich würde allerdings mal eine Aussage hierzu von einem Verantwortlichen interessieren. Passiert da noch etwas? Wie gesagt, sonst wird es keine neue Downloadversion geben.

NetSonic 12. Aug 2010 12:27

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Das klingt ja auf jeden Fall schon einmal nach etwas Fortschritt. Wie muss ich denn vorgehen, um überhaupt einen gültigen Connect mit den ZEOS-Komponenten zu bekommen? Hast Du da Beispielcode oder ein kurzes Howto in der Hinterhand?

Danke,
NetSonic

omata 12. Aug 2010 13:36

AW: MySQL via PHP-Tunnel (über eigene libmysql.dll)
 
Noch kannst du da gar nichts realisieren, ich muss die DLL erst anpassen. Die unterschiedlichen Zugriffsmethoden (dbExpress neu/alt und Lazarus) verwenden die MySQL-DLL alle unterschiedlich und ich muss intern erst alles richtig nachbilden (ohne den original Code zu besitzen, ist also alles nur Rätzelraten). Zeos zerstückelt die Hostname-Angabe so grauenvoll, dass die URL ohne "http://" und mit Backslash statt Slash anzugeben ist, damit ich die URL überhaupt in die DLL bekomme (ohne Zeos verändern zu müssen). Leider werden bei einer SQL-Abfrage die Spaltennamen noch nicht korrekt übergeben, so das dort sofort mit einer Fehlermeldung auftaucht, sobald man gezielt auf eine Spalte zugreifen möchte und da dies intern (über Zeos) sofort nach einer Abfrage durchgeführt wird, knallt es immer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.
Seite 1 von 3  1 23      

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