AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi SOAP: MYSQL-DB Zugriff

SOAP: MYSQL-DB Zugriff

Ein Thema von sephraina · begonnen am 21. Apr 2015 · letzter Beitrag vom 22. Apr 2015
Antwort Antwort
Seite 1 von 2  1 2   
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#1

SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 13:20
Hallo Zusammen

Ich hab da mal eine Frage bezüglich SOAP und MYSQL-DB Zugriff.
-Bevor ich noch in die falsche Richtung los programmiere :

Ich habe mich etwas mit SOAP auseinander gesetzt und bekomme auch eine einfach Client-Serveranwendung zum laufen.
(siehe Tutorial: http://www.delphi-treff.de/tutorials...t/webservices/ )

Zum Hintergrund:
Ich will eine SOAP-Anwendung schreiben, mittels welcher man vom Client aus (nebenbei der Client soll in einer Androidapp laufen) dann über "SOAP: Client --> Server" am Schluss auf eine MYSQL-DB zugreifen kann und von dort einige Tabellen mit Inhalten in die Clientanwendung geladen werden sollen. Diese Tabellen/Inhalte sollen/können dann ergänzt werden und nachher wieder zurückgespielt werden.

Zu meiner Idee:
Ich dachte mir das könnte so ablaufen, dass der Zugriff auf die DB im Server programmiert wird und im Client die Funktion, die die Abrufspezifikationen aufnimmt und an den Server weitergibt.
Dann muss ja der Server die Tabellen schicken? (hier habe ich noch keine Idee oder geht das automatisch?)
Der Client muss dann 'nur' noch die empfangen Daten richtig in die Darstellung packen.
Und am Schluss wieder schicken (Weiss ich auch noch nicht wie...) und der Server muss sie richtig an die DB weiterleiten.

Sorry, sind mal wieder 100 Fragen in einem Thema, aber ich hoffe doch jemand kann mir hierbei helfen.
Es geht mir vor allem um das Verständnis, was wo (Server-/Client-Seitig) laufen soll, und wie die Daten übergeben werden sollten.

Gruss und Danke schon im Voraus

sephraina
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#2

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 13:22
Ist SOAP zwingend gefordert / gewünscht? Falls es auch mit Android etc. laufen soll, wäre eine RESTful API (JSON über HTTP/S) ein gängiger Weg.
Michael Justin
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 13:23
Hier würde sich doch eher rein Rest(ful) Service anbieten.
Markus Kinzler
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 13:24
Reicht dafür nicht auch dies Aüp tethering?

http://docwiki.embarcadero.com/RADSt..._App-Tethering
Philip

Geändert von Darlo (21. Apr 2015 um 13:26 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 13:27
Aber nur, wenn er die App im Betrieb ( wenn WLAN) oder in der Nähe seines PCs ( wenn BlueTooth) verwenden will.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 13:30
SOAP um einen indirekten DB-Zugriff zu ermöglichen.
Und da wundert man sich das alles immer langsamer wird und mehr speicher benötigt ...

Wenn du eh schon einen Webserver hast: Wieso nicht gleich die Anwendung als Web/Browserlösung implementieren?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#7

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 14:22
Der Client muss dann 'nur' noch die empfangen Daten richtig in die Darstellung packen.
... und der Server muss sie richtig an die DB weiterleiten.
Genau, darauf läuft es hinaus. Wenn der Client und der Server Indy verwenden können, ist es relativ einfach: auf dem Android Gerät wird eine Indy HTTP Client Komponente verwendet (TIdHTTP). Diese kann mit der Methode "Get" eine Web-Adresse auf deinem Server aufrufen, zum Beispiel ganz einfach: "http://meinserver/tabelle1". Auf dem Server empfängt in einer Delphi Anwendung der Indy HTTP Server (TIdHTTPServer) diese Anfrage des Clients. Und wenn die vorige Anfrage eintrifft, sendet er zum Beispiel den Inhalt der "Tabelle 1" der Datenbank in Form einer Textdatei an den Client zurück. Das bedeutet, dass die Indy Client Komponente die das "Get" gesendet hat, als Ergebnis einen String als Antwort vom Server erhält, in dem die Tabelle 1 als Text steht. Das ist das Grundprinzip, auf dem man dann nach und nach die Kommunikation aufbauen würde.
Michael Justin
  Mit Zitat antworten Zitat
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#8

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 14:29
Hmmm, zuerst mal Danke an Alle für die Antworten.

Dann doch eher REST...
Habe ich mir schon vorher überlegt, aber die Tutorials (vor allem von embarcadero) gehen so ziemlich schnell auf DataSnap über.
Leider wird aber DataSnap in meiner Delphiversion nicht unterstütz, was heissen würde, ich müsste alles neu schreiben, oder gibts da Vorarbeiten (Codeschnipselbeispiele für die ganzen GET, POST usw.), die mir einen Anhaltspunkt/Starthilfe geben könnten?

Gruss und Danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 14:34
http://www.delphipraxis.net/184570-e...erstellen.html
Markus Kinzler
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#10

AW: SOAP: MYSQL-DB Zugriff

  Alt 21. Apr 2015, 14:40
(Codeschnipselbeispiele für die ganzen GET, POST usw.), die mir einen Anhaltspunkt/Starthilfe geben könnten?
Hier ist ein POST Beispiel für JSON an einen Webserver. Es erfordert allerdings Indy 10.6.2, und da es HTTPS verwendet auch die SSL Bibliotheken im gleichen Verzeichnis wie die Anwendung. Man kann aber das https://httpbin.org/post auch durch http://httpbin.org/post ersetzen, dann geht es ohne SSL Bibliotheken.

Delphi-Quellcode:
program JSONPostExample;
 
{$APPTYPE CONSOLE}
 
uses
  IdHTTP, IdGlobal, SysUtils, Classes;
 
var
  HTTP: TIdHTTP;
  RequestBody: TStream;
  ResponseBody: string;
begin
  HTTP := TIdHTTP.Create;
  try
    try
      RequestBody := TStringStream.Create('{"日本語":42}',
        TEncoding.UTF8);
      try
        HTTP.Request.Accept := 'application/json';
        HTTP.Request.ContentType := 'application/json';
        ResponseBody := HTTP.Post('https://httpbin.org/post',
          RequestBody);
        WriteLn(ResponseBody);
        WriteLn(HTTP.ResponseText);
      finally
        RequestBody.Free;
      end;
    except
      on E: EIdHTTPProtocolException do
      begin
        WriteLn(E.Message);
        WriteLn(E.ErrorMessage);
      end;
      on E: Exception do
      begin
        WriteLn(E.Message);
      end;
    end;
  finally
    HTTP.Free;
  end;
  ReadLn;
  ReportMemoryLeaksOnShutdown := True;
end.
Serverseitig hat man dann natürlich auch noch ein wenig zu tun, im Beispiel wird httpbin.org verwendet, an dem man einfache Tests für GET, POST, PUT, etc. vom Client aus durchführen kann.
Michael Justin
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:44 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