AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Zugriff über Delphi 2009
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Zugriff über Delphi 2009

Ein Thema von Vasco da Gama · begonnen am 21. Aug 2009 · letzter Beitrag vom 30. Aug 2009
Antwort Antwort
Seite 3 von 3     123   
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#21

Re: MySQL Zugriff über Delphi 2009

  Alt 24. Aug 2009, 11:20
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
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#22

Re: MySQL Zugriff über Delphi 2009

  Alt 27. Aug 2009, 13:57
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!
Danke
Tom
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#23

Re: MySQL Zugriff über Delphi 2009

  Alt 27. Aug 2009, 17:06
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
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#24

Re: MySQL Zugriff über Delphi 2009

  Alt 27. Aug 2009, 20:00
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.
Danke
Tom
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#25

Re: MySQL Zugriff über Delphi 2009

  Alt 30. Aug 2009, 13:11
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
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#26

Re: MySQL Zugriff über Delphi 2009

  Alt 30. Aug 2009, 13:25
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.
Danke
Tom
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#27

Re: MySQL Zugriff über Delphi 2009

  Alt 30. Aug 2009, 13:47
Ach gott bin ich blöd!
ich hab name geschrieben anstatt username
jetzt funktionierts super. Vielen dank
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr.
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