Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Komponente: MySQL via PHP-Tunnel (https://www.delphipraxis.net/54644-komponente-mysql-via-php-tunnel.html)

neuronet 8. Okt 2005 17:58

Datenbank: MySQL • Zugriff über: eigene Kompo

Komponente: MySQL via PHP-Tunnel
 
Es gab ja mal 'ne Zeit lang die WebAccess Komponente von Nozicle, mit welcher man via PHP auf eine MySQL Datenbank eines Providers (1&1, Strato) zugreifen kann, wenn der MySQL Server nicht direkt von Aussen angesprochen werden konnte.

Leider sind diese Kompo's vom Hersteller nicht mehr erhältlich. Also bastle ich mir selber eine (incl. Verschlüsselung).

Sollte Interesse daran bestehen, werde ich das ganze mal ordentlich strukturieren und veröffentlichen...

Um Feedback wird gebeten...

[edit=Luckie]Titel auf Wunsch geändert. Mfg, Luckie[/edit]

klausfloetgen 9. Okt 2005 13:29

Re: MySQL-Zugriff via PHP
 
Ich hatte Interesse an einer solchen Komponente.

Wie machst sie den Zugriff. Erzeugen sie eine PHP-Datei oder anders.

Ich programmiere auch in PHP.

Mit freundlichen Grüssen

Klaus Flötgen

- Delphi Arch. :-D

neuronet 9. Okt 2005 16:06

Re: MySQL-Zugriff via PHP
 
Der Zugriff erfolgt über ein augf dem Web-Server abgelegtes PHP Script, welches die von der Komponenten gesendeten SQL Anfragen an den Datenbankserver weitereleitet.

Sämtlicher Datenverkehr zwischen der Komponente und dem Web-Server ist verschlüsselt und kann zudem zusätzlich noch mit SSL gesichert werden.

Das DB-Passwort wird entweder in der Komponente eingegeben, oder es wird eine eigene User-Tabelle in der Datenbank angelegt, um das eigentliche MySQL Passwort zu schützen.

Die Anfragen, die die Komponente an den Web-Server schickt als auch die Antworten sind im MIME Format gehalten und können ggf. auch mittels einer Property gezippt werden, falls mal größere Datenmengen übertragen werden müssen.

klausfloetgen 9. Okt 2005 16:37

Re: MySQL-Zugriff via PHP
 
Hallo
Wie ich verstehe rufen sie das PHP-Script mit Get oder Post auf um die Daten zu übergeben.

Mit freundlichen Grüßen

Klaus Flötgen :lol:

neuronet 9. Okt 2005 16:41

Re: MySQL-Zugriff via PHP
 
Ja, da es momentan die simpelste Methode ist...

klausfloetgen 9. Okt 2005 16:49

Re: MySQL-Zugriff via PHP
 
Die Komponente scheint interessant zu sein.

Ich programmiere gerade an ein Tool das Projektdaten aus ECAD ELTIME ausliest und in einer MySQL-Datenbank zu verfügung stellt um sie danach in einer Webseite zu verfügung zu stellen.

Meine Webseite steht bei intranet, aber es war auch interessant sie auf meinen Webseite bei 1&1 zu verfügung zu stellen

Mit freundlichen Grüßen
Klaus Flötgen

neuronet 9. Okt 2005 16:52

Re: MySQL-Zugriff via PHP
 
Ich denke mal, dass diese Kompo für einige Leute interessant sein könnte, da die Preise für Hoster, die einem einen Zugriff auf MySQL von Außen ermöglichen doch relativ hoch sind.

Ich selbst entwickle Software für Internet- und Telecafés und alleine schon für die Lizenzierung ist ein direkter Zugriff unausweichlich, wenn ich nich tausende von Raubkopien auf dem Markt haben möchte...

Aber auch zur User-Verwaltung u.ä. ist der Zugriff immens wichtig...

Gigant02 3. Dez 2005 16:44

Re: MySQL-Zugriff via PHP
 
sehr geil

genausowas habe ich schon länger gesucht wann und wo kann ich die ersten test mit der komponenten machen ???

lg, Gigant

neuronet 7. Dez 2005 14:25

Re: MySQL-Zugriff via PHP
 
War leider zwischendurch im Krankenhaus, so dass die erste öffentliche Alpha-Alpha-Alpha Release von mir hier Anfang nächster Woche veröffentlicht wird.

Gigant02 22. Dez 2005 17:54

Re: MySQL-Zugriff via PHP
 
ohha krankenhaus

klingt nicht gut

naja aber es ist ja bald soweit

lach das ist echt ein klasse weihnachtsgeschenk

ich freu mich schon richtig drauf

wie ein kleines kind

lach sorry aber das musste einfach mal raus

lg, Gigant

neuronet 22. Jan 2006 14:09

Re: MySQL-Zugriff via PHP
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, nun gibt's erst mal den ersten Teil...

Besteht aus drei Komponenten:
  • TMySQLConnection
  • TMySQLDatabase
  • TMySQLStringGrid
und dem Script
  • tunnel.php
Am besten testet ihr das ganze Geraffel erst mal lokal (XAMPP o.a.).

Das 'Key' Feld ist noch ohne Bedeutung, wird später hinzugefügt um eine Verschlüsselung der Daten zwischen Komponente und Script hinzukriegen.

In der TMySQLStringGrid Kompo müssen noch etliche Properties umgeschrieben werde, aber eine simple Abfrage funzt schon mal. :-)

Reihenfolge der Kompos wie üblich:

TMySQLConnection -> TMySQLDatabase -> TMySQLStringGrid


P.S.: Ich weiß, dass noch jede Menge exceptions abgefangen werden müssen...
P.P.S: Ich weiß auch, daß das Parsen des Rückgabestring vom Script noch nicht Fehletolerant ist.

WICHTIG: Euer PHP-Interpreter darf keine Warnungen ausgeben!!!
(diese abzufangen wird später noch implementiert)

neuronet 25. Jan 2006 17:04

Re: MySQL-Zugriff via PHP
 
:cry: erst schrein'se alle und nun kein einziges Kommentärle... :cry:

CG2003 25. Jan 2006 17:23

Re: MySQL-Zugriff via PHP
 
Hallo,

sieht auf den ersten Blick schon mal gut aus! :wink:
Bin momentan noch in der Firma. Ich werd's nachher zu Hause mal testen!

neuronet 25. Jan 2006 17:28

Re: MySQL-Zugriff via PHP
 
:hello: :hello: :hello: Ein Lichtblick!!!! :hello: :hello: :hello:

CG2003 25. Jan 2006 19:31

Re: MySQL-Zugriff via PHP
 
Hmm, schade, ich krieg' Dein Package nicht installiert. Ich bekomme folgende Fehlermeldung:

"Package 'IndyProtocols100 kann nicht geladen werden'. Es enthält die Unit 'IdZLibCompressorBase', die auch im Package 'MySQL' enthalten ist."

Auch wenn ich Deine Units in ein eigenes neues Package packe, geht es nicht.

neuronet 25. Jan 2006 19:43

Re: MySQL-Zugriff via PHP
 
Welche Fehlermeldung kriegst Du denn, wenn du es in ein eigenes Package steckst???

Ich musste noch folgendes Verzeichnis zum include Pfad hinzufügen:

C:\Programme\Borland\BDS\4.0\source\ToolsAPI

CG2003 25. Jan 2006 19:56

Re: MySQL-Zugriff via PHP
 
Also, ich habe es eben ausprobiert.

Verbindungsaufbau funktioniert einwandfrei. Bis jetzt keine Probleme!

Allerdings gibt es Probleme mit dem ausführen von Querys des MySQLStringGrid.

Ich habe ein Datenbank "CPS2_DB" gewählt, und gebe bei der Eigenschaft "SQL Query" folgendes ein:


SQL-Code:
SELECT * FROM CPS2_DB;
Wenn ich nun die Eigenschaft auf TRUE setze, bekomme ich folgende Fehlermeldung:

" '3 : localhost : test : test : cps2_db : SELECT * FROM CPS2_DB;C-Status: 0' ist kein gültiger Integerwert".


Desweiteren solltest Du auch das Angeben von keinem Kennwort unterstützen lassen. Ich benutze zum lokalen Testen
nämlich einen MySQL-Account ohne Passwort.

Hoffe das hilft Dir... Ansonsten schon mal meinen Respekt für die bisherige Arbeit!

neuronet 25. Jan 2006 21:28

Re: MySQL-Zugriff via PHP
 
Werde es mir mal genauer anschauen.
Jedoch erfolgt die Auswahl der Datenbank normalerweise über die Zwischenkomponente TMySQLDatabase.
Die Anmerkung bezüglich des Passwortes wird in der nächsten Release miteingearbeitet.

neuronet 25. Jan 2006 23:02

Re: MySQL-Zugriff via PHP
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, Sebastian.

Hab jetzt mal im MySQLStringGrid die Fehler abgefangen.
Bei einer MySQL Fehlermeldung erscheint nun eine Hinweisfensterchen.
Die Angaben kannst du aber auch über die Properties FehlerNummer und FehlerText der Komponente auslesen.
Das Auslösen einer entsprechende Exception ist für die nächste Release vorgesehen.

Des weiteren kannst Du nun das ganze auch ohne passwort gebrauchen.
Die entsprechende abfrage habe ich entfernt.

Gruß Andy

CG2003 25. Jan 2006 23:12

Re: MySQL-Zugriff via PHP
 
Hallo,

habe eben nochmal die aktualisierten Komponenten ausprobiert.
(Kleiner Tip: Hänge aktualisierte Versionen an Deinen ersten Post an. Das schafft Übersichtlichkeit!)
Und was soll ich sagen? Es funktioniert! Super Arbeit. :-D

Habe es allerdings bis jetzt nur mit einem normalen

SQL-Code:
SLECT * FROM BlaBla;
ausprobiert. Aber immerhin. Es klappt. Spitze! Weiter so! :thumb:
Morgen probiere ich das dann mal remote auf meinem Webserver. :coder2: Gute Nacht! :cat:

neuronet 25. Jan 2006 23:13

Re: MySQL-Zugriff via PHP
 
Ob es vielleicht noch sinnvoll wäre, die SQL-Abfrage in eine eigene Komponente zu packen, auf welche dann die ganzen anderen StringGrid, Edit u.ä. zugreifen können???

neuronet 25. Jan 2006 23:14

Re: MySQL-Zugriff via PHP
 
Wollte ich machen... Kann den aber nicht mehr editieren... :cry: :cry: :cry: :cry:

CG2003 26. Jan 2006 08:28

Re: MySQL-Zugriff via PHP
 
Zitat:

Zitat von neuronet
Ob es vielleicht noch sinnvoll wäre, die SQL-Abfrage in eine eigene Komponente zu packen, auf welche dann die ganzen anderen StringGrid, Edit u.ä. zugreifen können???

Das wäre gut. Dann könnte ich Deine Komponenten auch in einem meiner Projekte einbauen.

neuronet 26. Jan 2006 09:04

Re: MySQL-Zugriff via PHP
 
Gut...

Wäre nett, wenn Du Dir schon mal mit Gedanken darüber machen könntenst, welche visuellen Komponenten noch benötigt werden würden...

CG2003 26. Jan 2006 12:09

Re: MySQL-Zugriff via PHP
 
Zitat:

Zitat von neuronet
Wäre nett, wenn Du Dir schon mal mit Gedanken darüber machen könntenst, welche visuellen Komponenten noch benötigt werden würden...

Im Prinzip kannst Du doch eine Art "Wrapper" programmieren, so wie bei den Zeos-Komponenten.
So dass man die Standard Delphi DB-Komponenten verwenden kann.

neuronet 26. Jan 2006 12:37

Re: Komponente: MySQL via PHP-Tunnel
 
Vom Prinzip her gebe ich Dir da recht...

Nur muss ich mich dann erst mal einlesen, wie ich den Datenschrott dann aufarbeiten muss, damit die anderen Komponenten problemlos darauf zugreifen können...

Müsste ja dann die komplette DB-Komponenten Schnittstelle implementieren...

Erst mal suchen, wo ich deren Definition finde...

franktron 26. Jan 2006 12:51

Re: Komponente: MySQL via PHP-Tunnel
 
Ganz einfach, du must die Kombos nur von TDataset ableiten

neuronet 26. Jan 2006 13:46

Re: Komponente: MySQL via PHP-Tunnel
 
Muss mir nun erst mal 'ne vernünftige Doku zu TDataSet suchen, damit ich auch weiss, wie ich dem Ding die vom Tunnel gelieferten Daten aufarbeiten muss, damit die anderen Kompos drauf zugreifen können...

neuronet 27. Jan 2006 19:40

Re: Komponente: MySQL via PHP-Tunnel
 
Also gut...

Nach längerem rumgoogeln hab' ich mich entschieden, franktrons Wink in diese Richtung zu folgen und eine TMySQLDataSet Komponente zusammenzuschrauben, auch wenn die hierzu erhältlichen Dokus spääääärlich gesäht sind...

Was man jedoch auf keinen Fall vergessen sollte ist, dass die Ansicht der Ergebnisse mit den Standard DB Komponenten zwar möglich ist, bei einem Edit jedoch (oder gar Append), sich jeder selbst über ein enstprechendes UPDATE oder INSERT Gedanken machen muss.

Ares 13. Feb 2006 11:09

Re: Komponente: MySQL via PHP-Tunnel
 
Zitat:

Ich habe versucht das Package bei mir zu installieren, bekomme dabei aber die Meldung:

Zitat:

Package Indy70 wird benötigt, konnte aber nicht gefunden werden.
Ich verwende Delphi 6 Pro, und habe die aktuelle Indy Version 10 installiert. Wie kann ich die Komponenten damit nutzen?
Hallo!

Die Frage hat sich schon erledigt, aber ich habe direkt ein neue :-) Ich habe Indy70 aus dem Packet entfernt, Delphi hat automatisch IndyCore60.dcp, IndyProtocols60.dcp und IndySystems60.dcp hinzugefügt. Danach hatte ich noch das Problem, dass Dephi 6 die Funktion posex nicht kennt. Ich habe Sie mir aber einfach nachgebaut.

Danach ließ sich das Package compilieren und installieren. Wenn ich nun aber eine der drei Komponenten auf meinem Form platziere und verschuche zu compilieren, bekomme ich die Meldung:

Zitat:

[Fataler Fehler] DesignEditors.pas(517): Datei nicht gefunden: Proxies.dcu
Liegt das wieder daran, dass ich Delphi 6 verwende? Wie komme ich hier weiter?

Besten Dank
Ares

neuronet 13. Feb 2006 14:05

Re: Komponente: MySQL via PHP-Tunnel
 
Hi,

versuche mal

C:\Programme\Borland\BDS\4.0\source\ToolsAPI

in den include Pfad mit aufzunehmen.

Ansonsten schwirren hier im Forum schon Lösungen zum Thema proxies.dcu rum.

Habe das Paket mit Indy 9 gebaut.

Ares 14. Feb 2006 15:27

Re: Komponente: MySQL via PHP-Tunnel
 
Zitat:

Zitat von neuronet
Hi,

versuche mal

C:\Programme\Borland\BDS\4.0\source\ToolsAPI

in den include Pfad mit aufzunehmen.

Ansonsten schwirren hier im Forum schon Lösungen zum Thema proxies.dcu rum.

Habe das Paket mit Indy 9 gebaut.


Hallo!

Ich habe das Ganze nun auch auf dem Sytem eines Freundes getestet, er verwendet Delphi 7 mit Indy 9. Das Package lässt sich ohne Modifikationen compilieren. Der Versuch ein Projekt mit den drei Komponenten zu compilieren lieferte zunächst das Ergebnis:

Zitat:

[Fataler Fehler] Unit1.pas(7) Datei nicht gefunden: 'DesignEditors.dcu'.
Nach dem Hinzufügen von "$(DELPHI)\Source\ToolsAPI" zum Bibliothekspfad tritt der Fehler nicht mehr auf. Dafür kommt nun aber die gleiche Meldung, die auch bei mir unter Delphi 6 auftritt:

Zitat:

[Fataler Fehler] DesignEditor.pas(530) Datei nicht gefunden: 'Proxies.dcu'.
Alle Heinweise, die ich zur Proxies.dcu im Forum und bei Google gefunden haben, laufen daraus hinaus, dass Pakete die eigene Eigenschaftseditoren enthalten, in zwei Teile aufgeteilt werden müssen: Ein Laufzeitpackage und ein Entwurfspackege.

Mich wundert allerdings, dass hier scheinbar sonst niemand diese Probleme mit den Komponenten hat. Scheinbar funktioniert das Package bei allen anderen Fehler frei, darum kann es daran ja eigentlich nicht liegen.

Hat noch jemand eine Idee, was ich sonst noch falsch machen könnte?

Achja, auf dem ganzen System findet sich auch keine Datei 'Proxies.dcu'. So gesehen ist es ja kein Wunder, dass Delphi sie nicht findet. Aber irgendwo müsste sie ja eingentlich sein, wenn sie in in DesignEditors referenziert wird...

Besten Dank
Ares

neuronet 14. Feb 2006 17:21

Re: Komponente: MySQL via PHP-Tunnel
 
Vielleicht hilft Dir das ja weiter:

Das leidige Problem...

manfred_h 23. Feb 2006 14:14

Re: Komponente: MySQL via PHP-Tunnel
 
Zitat:

Zitat von neuronet
Hi,

versuche mal

C:\Programme\Borland\BDS\4.0\source\ToolsAPI

in den include Pfad mit aufzunehmen.

Ansonsten schwirren hier im Forum schon Lösungen zum Thema proxies.dcu rum.

Habe das Paket mit Indy 9 gebaut.

Hallo zusammen
Eure Diskusion über diese Komponente sieht ja wirklich interessant aus. :thumb:

was mir ( als Anfänger ) nicht ganz klar ist, Du ( neuronet ) schreibst dass Du die Komponenten
mit Indy 9 gebaut hast aber im Code sthet bei mir was von
requires
...
Indy70,
und das ganze lässt sich bei Delphi 2006 ( von mir ) nicht Kompilieren.. :|
Habe auch schon auf Indy9 umgestellt ( standart ist ja 10 ) aber kein Erfolg...

was läuft da falsch?
Manfred

CG2003 23. Feb 2006 16:49

Re: Komponente: MySQL via PHP-Tunnel
 
Zitat:

Zitat von neuronet
Also gut...

Nach längerem rumgoogeln hab' ich mich entschieden, franktrons Wink in diese Richtung zu folgen und eine TMySQLDataSet Komponente zusammenzuschrauben...

Ist die genannte "TMySQLDataSet" Komponente schon fertig?

Zitat:

Zitat von neuronet
Was man jedoch auf keinen Fall vergessen sollte ist, dass die Ansicht der Ergebnisse mit den Standard DB Komponenten zwar möglich ist, bei einem Edit jedoch (oder gar Append), sich jeder selbst über ein enstprechendes UPDATE oder INSERT Gedanken machen muss.

Wie darf ich das verstehen? Andere Komponenten können das doch auch?!

neuronet 26. Feb 2006 16:42

Re: Komponente: MySQL via PHP-Tunnel
 
So, die Komponente ist zwar in der Theorie fertig, wird aber gerade noch getestet, da es einige Speicherfehler gab, die mir dann Windoof ins Nirvana geschickt haben. Diese Probleme entstanden insbesondere bei den BLOB-Feldern.
Dauert also leider noch ein paar Tage, bis ich was neues veröffentliche.. :-(

CG2003 19. Apr 2006 22:15

Re: Komponente: MySQL via PHP-Tunnel
 
Hallo,

ist dieses "Projekt" tot, oder kommt da noch was?

tavoc 24. Apr 2006 14:08

Re: Komponente: MySQL via PHP-Tunnel
 
Mich würde auch interessieren wie es um da Projekt steht, ich muss nämlich ein Tool schreiben um die Daten eines Projektverwaltungstools in ein anderes zu importieren.

Jedoch verfügen diese keine Export/Import funktionen. D.h. ich muss direkt auf die Datenbank zugreifen (Egroupware). Das andere lässt mich nchnicht mal auf die Datenbank, dort muss ich erstmal sehen ... (Blueant)

neuronet 29. Jun 2006 21:36

Re: Komponente: MySQL via PHP-Tunnel
 
Mea culpa millionen Mal, aber ich bin momentan gesundheitlich doch ziemlich angeschlagen, so dass ich die meiste Zeit in Krankenhäusern dieser Republik verbringe... Und was den dortigen online-Zugang angeht sieht es nun mal nicht so rosig aus...

Das Projekt lebt aber noch...

Müsst mir leider noch etwas Zeit geben...

Danke...

TKC 22. Jul 2006 13:06

Re: Komponente: MySQL via PHP-Tunnel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Versuchs mal damit ... habe ich zwar schon etwas überarbeitet, doch es sollte funtionieren.

Ich denke man sollte das wirklich weiter entwickeln ... hat jemand lust dazu mitzumachen ?


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

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf