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

Web & réseau Delphi Discussion :

mise a jour des données impossible avec soapconnection


Sujet :

Web & réseau Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 83
    Points : 34
    Points
    34
    Par défaut mise a jour des données impossible avec soapconnection
    Bonjour a tous
    je cherche une solution pour avoir une base de données sur un serveur web et j'accede depuis une application delphi client lourd
    j'ai trouvé une solution avec les webservice SOAP et appach
    soapconnection+clientdataset....
    coté serveur j'ai utilisé un ado table .mdb

    quand j'affiche les données dans un dbgrid sa marche mais quand je modifie les données depuis le dbgrid tout a laire normale meme si je fait clientdataset.ApplyUpdates(0) les données de la table ne se modifie pas des qaue je ferme et que je relance l'application les données retrouve leurs valeurs initiale alors si la comunication des données est dans un seul sence alors cette solution ne m'aide pas

    dans la mesure ou il existe une autre solution plus éfficace j'aimerai la connaitre sinon j'espére trouver la cause de la mise a jour des données qui ne fonctionne pas

    j'espére que c claire
    merci a tous

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Euh, il faut faire une fonction pour récupérer le XML (ou le Binaire Raw) issu du TClientDataSet généré par le Serveur mais aussi une fonction qui envoie le XML après avoir fait les modifs vers le Serveur (qui doit effectuer les modifications sur Access ensuite)

    Tu peux utiliser TXMLData pour transférer le Contenu du TClientDataSet.SaveToStream(StringStream)

    Tiens des sujets où j'ai utilisé TXMLData en Delphi 7 (alors que ce type n'y existe pas en standard)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 83
    Points : 34
    Points
    34
    Par défaut RE
    Merci
    emmm peut étre qu'il y'a une meulleur solution que SOAP ...
    je vais expliquer un peu mon soucie

    ce que je recherche c'est que mon application delphi fonctionne comme un site web dynamique elle accède a une base de données qui se trouve sur un serveur web que j'héberge moi même (j'ai une adresse ip fixe et une connexion HSDSL), c'est a dire que les données soit accessible depuis Internet de partout il suffirai d'une connexion internet et le fichier de l'application .exe qui se connect a la BDD qui elle se trouve dans le serveur web

    pour mieux expliquer voici un exemple

    si un utilisateur crée un nouveau fournisseur sur une filiale de l'entreprise qui se trouve a paris un autre utilisateur a Nice peut voir ce fournisseur et le modifier ...(même principe que pour un site web dynamique mais avec une application delphi client lourd)
    je sais que l'acces au données sera plus lourd que si le serveur BDD se trouvé sur le résaux local mais c le prix a payer

    j'espère que c'est claire
    a bien tôt

  4. #4
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 215
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    les webservices peuvent faire l'affaire.
    sinon après tu as la solution d'utiliser Datasnap si tu as la version enterprise de Delphi. Il esxistent aussi d'autres frameworks comme ceux de RemObjects qui sont pas mal (RemObjects SDK et DataAbstract).
    Il existe toujours je pense aussi les composant de François Piette (midware) qui peuvent faire ce que tu veux.

    @++
    Dany

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Sinon, un bon Tunnel SSH pour accéder à la Base (faut trouver le Port ADO à ce sujet, je ne sais pas les protocoles réseaux avec ACCESS)
    Tu seras connecté à la base à distance (comme un mini-VPN), tu pourras utiliser des certificats et les données seront en plus chiffrées durant leur transmission ... tu devrais remplacer Access par MySQL, il fournit tous les outils pour les connexions distantes sécurisées ...

    Pour ton problème, ce qui posera problème c'est si tu as plusieurs utilisateurs simultanés avec le WebService, le flux sera trop important ... et tu auras des difficultés avec les accès concurrentiels ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 83
    Points : 34
    Points
    34
    Par défaut
    J'ai essayer datasnap ca marche et je peut modifier des données de base access mais pas oracle (j'utilise ado coté serveur)

    je ne comprend pas pourquoi
    sachant que j'ai copier le adotable dans une fiche et j'ai placer un dbgrid j'ai modifier les données et sa marche, pour étre sur que le probléme ne se situe pas au niveau du ADOtable

    j'espére que quel'un peut m'aider merci

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par amireve Voir le message
    J'ai essayer datasnap ca marche et je peut modifier des données de base access mais pas oracle (j'utilise ado coté serveur)
    le mieux avec datasnap est d'utiliser dbexpress

    sinon, il y d'autres solutions :
    - http://www.remobjects.com/
    - http://www.realthinclient.com
    - http://www.overbyte.be/frame_index.html
    - http://www.progdigy.com/?p=48

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    tu devrais remplacer Access par MySQL
    tu peux effectivement remplacer Access mais je ne vois pas trop l'interêt de le faire par MySQL. PostgreSQL ou Firebird sous à mon avis mieux (à moins que tu es des actions Oracle).

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    amireve, peux tu expliquer précisément comment se passe le transfert entre le serveur et client ?

    Serveur -> Client
    ACCESS -> ADO -> ClientDataSet -> SaveToStream -> SOAP -> Client LoadFromStream -> ClientDateSet -> DBGrid

    Client -> Serveur
    DBGrid -> ClientDataSet -> SaveToStream -> SOAP -> Server LoadFromStream -> ClientDataSet -> Application Modifcation ACCESS



    C'est juste que j'utilise celui-là, j'ai pas faire de PostGreSQL depuis l'école (10 ans) et du FireBird depuis 4 ans !

    Pour le PostGre, je peux rien dire, je ne l'ai pas assez expérimenté

    Pour InterBase, ben par rapport à MySQL, c'est pas terrible, l'outil IBExpert est très lourd, j'ai trop de lenteur avec IB et les composants IBX (une requête qui durent plus de 10ms dans un de mes projets c'était intolérable, en MySQL, quand ça ne dépassait 5ms (dont 90% sont liés au lenteur de ADO, avec CoreLab\Devart, ça dépassait par 2ms) et là c'était bien !

    Pour FireBird, je ne peux pas me prononcer, je sais que c'est IB libre, je l'ai rapidement utilisé durant 4 mois, je ne suis pas allez bien loin ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 83
    Points : 34
    Points
    34
    Par défaut
    j'ai essayer SOAP avec Appache mais pour la mise a jour des données rien a faire
    j'ai pas utilisé SaveToStream /LoadFromStream

    j'utilise maintenant DATASNAP

    serveur
    DatasetProvider+ADOtable =>access

    client
    DCOMConnection1+ClientDataSet

    mais le probléme dans le cas d'oracle la mise a jour ca marche pas on diré que c'est en lecture seul pourtant j'ai tout les drois coté oracle

    pour la lenteur je n'est pas encor essayer sur un vrais serveur web avec des utilisateur multiple ....

    en plus je me demande comment gerer la sécurité vu que aucune authentification n'est demandé coté client

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    IBExpert est très lourd
    Par rapport a quel outils MySQL ?

    Citation Envoyé par ShaiLeTroll Voir le message
    j'ai trop de lenteur avec IB et les composants IBX (une requête qui durent plus de 10ms dans un de mes projets c'était intolérable, en MySQL, quand ça ne dépassait 5ms (dont 90% sont liés au lenteur de ADO, avec CoreLab\Devart, ça dépassait par 2ms) et là c'était bien !
    IBX ne sont pas vraiment les composants les plus rapide pour Firebird.
    Firebird est beaucoup plus rapide que ne l'était Interbase 6.

    Firebird est à mon avis plus adapté pour la gestion que MySQL.
    MySQL est plus adapté pour le web (surtout pour php d'ailleurs) que Firebird.

Discussions similaires

  1. Mise à Jour des Données impossible
    Par boby15000 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 08/01/2009, 11h57
  2. mise a jour des données d'un formulaire
    Par imeys dans le forum IHM
    Réponses: 3
    Dernier message: 28/08/2007, 22h57
  3. mise a jour des donnèe entre DataGridView et MySQL
    Par TheBlackReverand dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/06/2007, 20h47
  4. Mise a jour des données sans se deconnecter
    Par djedie dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/10/2006, 12h57
  5. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 12h46

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