Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Zugriff über Delphi 2009 (https://www.delphipraxis.net/138990-mysql-zugriff-ueber-delphi-2009-a.html)

Bbommel 24. Aug 2009 10:20

Re: MySQL Zugriff über Delphi 2009
 
Zitat:

Zitat von Vasco da Gama
Ich habe mich erkundigt ob ich nuSOAP installieren darf oder es auch so geht, und bekam zur antwort, dass es nicht geht, wenn ichs richtig verstanden habe:
- Hier meine Frage mit Antwort -

Wie anse schrieb, trifft die Antwort eigentlich nicht auf dein Problem zu. Wahrscheinlich ging chrisb einfach von etwas anderem aus: Du kannst SOAP ja nicht nur so nutzen, wie von mir beschrieben, sondern auch so, indem deine Homepage über SOAP von einem anderen Server (einer anderen Homepage) Daten abfragt und dann bei dir anzeigt. Und genau diese Funktion, also dass du dafür sorgst, dass der Server von bplaced eine Verbidnung zu einem anderen Server aufbaut, wird wohl verboten sein bzw. verhindert werden. Wie gesagt: Das willst du ja auch gar nicht.

Mit nuSOAP solltest du keine Probleme haben - einfach ausprobieren. Es sind ja nur ein paar PHP-Dateien, die man hochladen muss. Und dann halt selbst verstehen, wie das Ganze funktioniert.

Bis denn
Bommel

torud 27. Aug 2009 12:57

Re: MySQL Zugriff über Delphi 2009
 
Eigentlich reicht es für einfache Anwendungen, die keine grösseren Schutz benötigen, völlig aus, über http Kommandos an eine PHP-Datei zu senden, die dann entsprechend der Kommandos die Daten entweder aus der Datenbank ausliest und zurück gibt, oder aber gesendete Daten prüft und in die Datenbank einträgt oder updatet.

Sowas geht recht einfach mit den Indi´s, nem einfachen php-Script und einer mySql-Datenbank auf Deinem Server.

Ist wirklich nicht schwer!

Vasco da Gama 27. Aug 2009 16:06

Re: MySQL Zugriff über Delphi 2009
 
Hallo BBommel und troud.

Da ich keine wichtigen daten wie passwörter übertrage, sondern nur z.B. einen aktuellen Spielstand bräuchte ich keine große Sicherheit.

Kannst du mir erklären, wie ich mit Indy eine php datei 'ausführe'?

DAnke, mfg

torud 27. Aug 2009 19:00

Re: MySQL Zugriff über Delphi 2009
 
Du brauchst eigentlich nur auf Deinem Formular die Komponente IdHTTP1 zu platzieren, einen Button erzeugen und ungefähr folgenden Code dem Button zuweisen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   Stream:TStringStream;
   LParams: TStringlist;
begin
  Stream   := TStringStream.Create('');//Rückgabe-Stream erstellen
  LParams  := TStringlist.Create;
  try
    LParams.Add('cmd=TuWas');//+name);
    LParams.Add('id='+inttostr(123));
    LParams.Add('datum='+DateToStr(Date));
    LParams.Add('zeit='+TimeToStr(Time));
    try
      IdHTTP1.Post('http://www.dein_server.de/scripts/feedback.php', LParams, Stream);
      Showmessage(Stream.DataString); //Antwort von Deinem php-Script
    except
       on E: Exception do
         showmessage('Leider trat folgendes Problem auf: ' + E.Message);
    end;
  finally
    LParams.Free;
    Stream.Free;
  end;
end;
So und hier noch ein ungefährer Aufbau des php-Scripts

Delphi-Quellcode:
<?

include("connect.php"); //diese php-datei stellt die verbindung zu sql-datenbank her

//übernahme der empfangenen paramter
$cmd        = $_POST['cmd'];
$id         = $_POST['id'];
$datum      = strftime("%Y.%m.%d");
$zeit       = $uhrzeit = date("H:i:s");

//ausgabe der daten
//das gesendete "TuWas" erhälst du hier also zurück
//man kann natürlich auch echte kommandos schicken und diese dann auswerten/reagieren
echo($cmd);

?>
Ist jetzt nicht getestet, aber so in der Art habe ich das schon ziemlich oft gemacht. Kannst Du Dir anpassen, wie Du´s brauchst.

Vasco da Gama 30. Aug 2009 12:11

Re: MySQL Zugriff über Delphi 2009
 
Danke, ich habs mit folgenden Codes probiert:
Delphi-Quellcode:
Stream   := TStringStream.Create('');//Rückgabe-Stream erstellen
  LParams  := TStringlist.Create;
  try
    LParams.Add('name=NonPlusUltra');//+name);
    LParams.Add('level='+IntToStr(GameState.Level));
    try
      IdHTTP1.Post('http://www.vascodagama.bplaced.net/programs/lotnc/saves.php', LParams, Stream);
      Showmessage(Stream.DataString); //Antwort von Deinem php-Script
    except
       on E: Exception do
         showmessage('Leider trat folgendes Problem auf: ' + E.Message);
    end;
  finally
    LParams.Free;
    Stream.Free;
  end
Die saves.php
Code:
<?php



//übernahme der empfangenen paramter
$name       = $_POST['name'];
$level      = $_POST['level'];

//ausgabe der daten
//das gesendete "TuWas" erhälst du hier also zurück
//man kann natürlich auch echte kommandos schicken und diese dann auswerten/reagieren

$verbindung = mysql_connect("localhost", "BENUTZERNAME" , "PASSWORT")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("DATENBANKNAME") or die ("Datenbank konnte nicht ausgewählt werden");


$result = mysql_query("UPDATE lotnc SET level='$level' WHERE name LIKE '$name'");

?>
Ich bekomme eine leere Message Box also sollte alles funktioniert haben, in der Datenbank ist allerdings noch alles beim alten...

mfG

torud 30. Aug 2009 12:25

Re: MySQL Zugriff über Delphi 2009
 
Hm, dann versuchs doch mal so, dass DU Dir per Echo die ID des zuletzt geänderten Datensatzes schicken lässt.

Damit sollte es aber klappen:
mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation


Dann würde ich mal noch prüfen, ob die 2 Parameter für das Update überhaupt dem upzudatenden Datensatz entsprechen in ihrer Schreibweise.

Wenn das alles nix hilft, würde ich es mal mit einem Testinsert der Daten versuchen und einen Blick in die Datenbank riskieren, respektive Dir die ID des neuen Datensatzes per echo schicken lassen.

Vasco da Gama 30. Aug 2009 12:47

Re: MySQL Zugriff über Delphi 2009
 
Ach gott bin ich blöd! :wall:
ich hab name geschrieben anstatt username
jetzt funktionierts super. Vielen dank :) :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 Uhr.
Seite 3 von 3     123   

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