IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

[Datasnap][FireDAC] Partie cliente


Sujet :

Bases de données Delphi

  1. #1
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut [Datasnap][FireDAC] Partie cliente
    Bonjour,

    J'essaye de me documenter au mieux afin de préparer un futur développement basé sur Datasnap / Firebird.

    J'ai visionné le dev du jeudi consacré à Datasnap, c'est à voir et revoir pour les novices en Datasnap.

    http://www.ledevdujeudi.com/category...son2_episode2/

    Dans ce tuto, le connecteur à Datasnap coté client, c'est DBExpress.

    Si j'ai bien compris ce que j'ai pu lire sur la toile FireDAC permet plus de chose que DBExpress et il fonctionnerait également avec Datasnap.
    Cependant je suis tombé sur des discutions qui datent de fin 2013 qui disait que FireDAC n'implémentait pas toutes les fonctionnalités de Datasnap.
    Notamment FireDAC permettait de se connecter au serveur DataSnap et de lancer les procédures serveur et d'en récupérer le résultat, c'est tout.

    Le tout à travers un TDFStoreProc.

    Cela parait parfait pour récupérer ses données mais quid de la mise à jour de celle ci sur le serveur ?

    J'ai bien vu des tuto Embarcadéro FireDac Datasnap JSON mais c'est dans le cadre d'un serveur DataSnap REST. Sur un serveur DataSnap 'normal' comment faire ?
    Lien Tuto Datasnap REST FireDac :
    http://docwiki.embarcadero.com/RADSt...on_and_FireDAC

    SergioMaster à bien fait des tests ici : http://www.developpez.net/forums/d13...edac-datasnap/ mais parle d'ensemble de données en lecture seule.

    Donc mes interrogations sont :
    1 - Est ce que FireDAC permet actuellement de mettre à jours des données sur un serveur DataSnap 'Normal' et comment ?
    2 - Est il préférable de créer un serveur REST (j'ai cru comprendre que REST permet une plus grande compatibilité avec d'autres langage (ce qui ne m’intéresse pas) au détriment d'une perte de performance
    3 - Peut être qu'on peut utiliser JSON sur un serveur Datasap non REST ?

    Merci pour l'attention que vous porterez à ce message.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par Barbibulle Voir le message
    SergioMaster à bien fait des tests ici : http://www.developpez.net/forums/d13...edac-datasnap/ mais parle d'ensemble de données en lecture seule.
    Pour en revenir à cet essai ,l'ensemble en lecture seule dans le contexte c'est parce que je n'avais pas besoin de faire de modifications , juste des lectures. Je sais que j'ai bloqué surtout sur le passage d'image (en dehors d'un blob) ce qui m'avais fait reprendre le programme en 2 tiers à cause du temps .
    Je sais également que depuis la liaison Firedac+Datasnap s'est beaucoup étoffée (j'ai suivi ces évolutions au travers des forums de discusions de l'EDN, Dmitry Arefiev est généralement très réactif)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    En fait si vous regardez dans Delphi, si vous faites Fichier/Nouveau/projets Delphi/Serveur Datasnap vous verrez que dans la liste des icones vous avez "Module Client Datasnap" pour les serveurs Datasnap classiques justement. Et vous remarquez qu'au dessus de l'icone il y a l'inscription DBX pour DBExpress. Qui montre bien que dans le cas d'un serveur Datasnap Classique il s'appui sur DBexpress pour la liaison.
    Par contre attention, devoir utiliser DBExpress pour la connexion (En fait comme l'a démontré Serge on pourrais aussi utiliser Firedac pour la connexion mais dans ce cas là tout n'a pas été implémenté. Et de plus même les composants Firedac dans ce cas là se basent sur DBExpress) ne veut pas dire que l'on doit utiliser DBExpress de partout dans les applications.
    Je m'explique :
    Je peux très bien avoir un Serveur Datasnap classique. Qui lui se connecte à ma base de données et aux différentes tables via FireDac. Vu que ce que je mets à disposition des applications clientes c'est des types TDataset en fait je pourrais même utiliser n'importe quel composant d'accès aux données qui hérite de TDataset. Ensuite par contre mon application cliente va faire la connexion avec le serveur Datasnap avec les composants DBExpress. Mais on est d'accord dans ce cas là que l'on utilise DBExpress seulement pour la connexion entre le serveur Datasnap et l'application cliente, c'est tout.
    Sinon bien entendu l'autre solution c'est celle que vous avez remarqué qui est d'utiliser un Serveur Datasnap REST et dans ce cas là, la connexion au serveur Datasnap depuis l'application cliente pourra se faire directement avec les composants FireDac.

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Merci pour ces éclaircissements.

    Si FireDAC se base sur DBX pour se connecter au serveur Datasnap, autant utiliser directement DBX.

    Pour conclure :

    Coté serveur :

    Datasnap TCP/IP + FireDAC pour l'accès aux BDD et publication des TDataSet

    Coté client :
    Full DBX

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/10/2011, 06h37
  2. partie cliente de l'installation.
    Par turican2 dans le forum Débuter
    Réponses: 1
    Dernier message: 23/06/2009, 13h25
  3. partie client partie serveur
    Par atifo dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 17/05/2008, 12h13
  4. J2EE et partie cliente en Java
    Par Mister Nono dans le forum Java EE
    Réponses: 2
    Dernier message: 15/02/2008, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo