AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DataSnap Client connection über FireDAC
Thema durchsuchen
Ansicht
Themen-Optionen

DataSnap Client connection über FireDAC

Ein Thema von Kostas · begonnen am 22. Aug 2014 · letzter Beitrag vom 23. Aug 2014
Antwort Antwort
Seite 1 von 2  1 2      
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 12:44
Datenbank: Firebird • Version: 1.5 • Zugriff über: DataSnap
Hallo Zusammen,

ich arbeite gerade dieses Tutorial durch.
http://docwiki.embarcadero.com/RADSt...Base-Tutorial)

Dabei werden DBX Komponenten verwendet(TSQLConnection) die ich gerne durch FireDAC ersetzt würde. Ich habe eine TFDPhysDSDriverLink Komponente auf die Form gelegt wie in diesem Dokument beschrieben.

ms-help://embarcadero.rs_xe6/rad/Herstellen_einer_Verbindung_zum_DataSnap-Server_(FireDAC).html

Wo trage ich nun die beschriebenen Parameter wie Servername, Port u.s.w. zur Laufzeit ein?


Gruß Kostas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 13:13
In der Connection-Komponente
Markus Kinzler
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 13:22
Hallo Markus,

das habe ich zunächst auch versucht und konnte mich auch mit dem DataSnapServer verbinden.
Doch im Tut. folgt nach der SQLConnection eine SqlServerMethod die findet unter SQLConnection natürlich nicht die FDConnection. Das hat mich an dieser Stelle irritiert.
Wie hängt das bitte zusammen? Oder ist es so zu verstehen, Clientseitig muss ich wenn ich
DataSnap nutzen möchte due DBX Komponenten verwenden?

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 15:20
Ganz ehrlich? Wenn du mit DataSnap arbeiten willst, dann nutzt du auch bei XE6 besser noch die DBX Komponenten. Der DataSnap-Support bei FireDAC ist m.E. leider noch nicht ausgereift genug für eine brauchbare Anwendung. Das wird sich aber in den kommenden Delphi-Versionen sicher noch verbessern.

In den Beispielen unter Object Pascal\DataSnap\FireDACJSONReflect findest du allerdings ein kleines Beispiel.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 15:33
Besten Dank für den Hinweis Uwe.

Darf ich dich fragen wie du DataSnap generell einschätzt? Ist es geeignet im produktiven Umfeld? Ich hatte in XE2 meine ersten Versuche. Das Hauptproblem war damals wenn ein Client
mit unzuverlässiger Connection wie Mobile Anwendungen die Connection verloren hat, hat
das komplette System gesponnen. Die Connection konnte also nicht mehr aufgenommen werden und mindestens die Client Applikation musste neu gestartet werden. Ist dir bekannt ob
in diesem Bereich sich DataSnap weiterentwickelt hat? Ich spreche bewusst instabile Connections an da ich eine Anforderung habe einen relativ einfachen Client zu schreiben
welcher auf ein Android Smartphone und auf ein IPhone5 laufen soll.

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 15:56
Wir nutzen DataSnap ebenfalls. Abbrechende Verbindungen verwalten wir selbst. Sprich wir haben einen Wrapper um die Clientmethoden, die die Verbindung wieder aufbauen, wenn der Aufruf durch einen Verbindungsabbruch fehlschlägt.

Der Transfer von Datasets über FireDACJSONReflect funktioniert sehr gut und ist gerade bei vielen kleinen Datenbanktabellen um ein vielfaches schneller als vorher via DBX. Ich hoffe, dass da noch mehr kommt, aber gut nutzbar ist das auf jeden Fall.

Da serverseitig eigene Sessions auch das Datenbankhandling übernehmen, ist auch dort ein Verbindungsabbruch kein Problem solange die Session beim Reconnect noch da ist. Da man bei FireDACJSONReflect die Verbindung zwischen den Komponenten selbst regelt, macht DataSnap da auch keinen Strich durch die Rechnung wie leider an manchen anderen Stellen.

Wichtig beim Reconnect:
Die Clientmethoden-Klasse muss neu erstellt werden, ansonsten funktioniert diese danach nicht mehr...
Vielleicht ist das das Problem gewesen, auf das du gestoßen warst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#7

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 16:10
Erganzend dazu: Der ClientCallbackManager braucht einen kleinen Patch, damit er nach einem Verbindungsabbruch wieder funktioniert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 16:23
Danke Sebastian für den Hinweis.

Ich fange jetzt wirklich frisch an und versuche mich durch die Tuts und Dokus.
Dein Hinweis kann ich noch nicht werten, ich bin noch nicht so weit.
Möglicherweise meinst du das:

Aus den aktuellen Tut: http://docwiki.embarcadero.com/RADSt...Base-Tutorial)
Delphi-Quellcode:
procedure TfrClientMain.Button3Click(Sender: TObject);
var
  myServer: TUn_ServerModuleClient;
  von,bis: TDateTime;
begin
  SQLConnection1.Open;

  myServer := TUn_ServerModuleClient.Create(SQLConnection1.DBXConnection);
  try
    Label1.Caption := myServer.callStoredProcedureAuswertung(StrToDateTime(Edit1.Text),StrToDateTime(Edit2.Text));
  finally
    if SQLConnection1.Connected
    then SQLConnection1.close;
    myServer.free;
  end;

end;
Meinst du das die Instanz von "myServer" nach einem Abbruch neu erzeugt werden soll?
In diesem Fall wäre das recht einfach. Ich nutze hier eine Methode "callStoredProcedureAuswertung" die der DataSnapServer bereitstellt. Es ist aber
auch so dass der Client DataSets konsumiert die über DataSetProvider-ClientDataSet
bereitgestellt werden. Auf der Form gibt es auch eine DSProviderConnection dessen Connection
ich zumindest zur Designtime nicht disconnecten kann.

Sorry für die unqualifizierte Beschreibung, wie gesagt, ich fange wieder frisch an.

Gruß Kostas
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 16:23
Erganzend dazu: Der ClientCallbackManager braucht einen kleinen Patch, damit er nach einem Verbindungsabbruch wieder funktioniert.
Das ist doch sehr interessant. Danke für den Hinweis Uwe.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: DataSnap Client connection über FireDAC

  Alt 22. Aug 2014, 21:25
Meinst du das die Instanz von "myServer" nach einem Abbruch neu erzeugt werden soll?
Ja, genau.

Erganzend dazu: Der ClientCallbackManager braucht einen kleinen Patch, damit er nach einem Verbindungsabbruch wieder funktioniert.
Welchen meinst du?

Callbacks habe ich zumindest aus Thin Clients durch erneute Verbindungsversuche wiederherstellen können ohne dass ich etwas geändert hätte.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:22 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