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

Delphi Discussion :

Firedac en réseau


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut Firedac en réseau
    S'il vous plait j'ai une question, j'ai développé une application réseau avec Delphi 10.1 et j'ai utilisé les Adoptable et pour l'option CursorLocation je lés mis sur clUserServer et ca marche très bien quand quelqu'un change un enregistrement il est immédiatement visible pour les autres qui sont connectés, maintenant je veux remplacer les Adotables par Fdtable de FIREDAC, mais les modifications d'enregistrements ne sont pas visible pour les autres qui sont connectés, uniquement celui qui a modifié peut voir la modification et comme je n'ais pas trouver l'option CursoLocation dans les table Firedac je ne sais pas s'il y a une autre option a changer pour que les modifications soient visible immédiatement pour les autres qui sont connectés.
    Pour Information avec Adotable quand je met CursolLocation sur clUserclient j'ai le même problème les modification ne sont pas visible pour les autres connectés.
    LA BDD utilisé et MS ACCESS.
    Merci pour votre aide et assistance.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    ACCESS gère-t-il des transactions ?
    Et ACCESS pour une utilisation réseau, un choix à revoir, un SQL Server [Express] serait à privilégier en restant dans un produit Microsoft.

    ADOTable, j'ai constaté des anomalies de fonctionnement en clUseClient, un temps anormal de fetch, c'était avec SQL Server, je te laisse lire et cela devrait te conforter dans l'utilisation de clUseServer

    Et c'est clUseServer et clUseClient pas ce que tu as écrit clUserServer et clUserClient

    Rien ne vaut la lecture de la MSDN a ce sujet CursorLocationEnum

    Sachant que CursorLocation influence les valeurs possible de CursorType, a vérifier lequel est vraiment l'origine du comportement de mise à jour immédiat qui est réalité lié à ctKeyset/adOpenKeyset qui gère les mises à jour alors que adOpenStatic/ctStatic forcé par adUseClient/clUseClient ne gère pas les mises à jour entre client.

    Du coup, ta recherche de fonctionnalité est CursorType plutôt que CursorLocation :

    FireDAC.Stan.Option.TFDFetchOptions.CursorKind en ckDynamic par exemple
    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
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut
    Merci beaucoup ShaiLeTroll, finalement c'été le CursorType en Ctdynamic qui a résolu le problème et je suis très content que vous m'aviez répondu,
    Seulement dans les DBGRID j'ai des couleur alternative 1 ligne sur deux dans le Drawcolumcell, quand le curseur et on ctStatic sa marche bien et
    quand j'ai changé le cursorlocation en CtDynamic (j'ai réglé le problème de mise a jour c'est le plus important) le DBGrid est coloré dans l'ensemble avec la même couleur.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    Le RecNo surement non implémenté dans ce cas
    J'utilise que des ADOQuery et non ADOTable, donc un ROWNUM dans le SELECT en plus permettra d'avoir une numérotation et gérer les couleurs sur le paire\impaire mais c'est une fonctionnalité SQL Server ou ORACLE inexistante en ACCESS
    L'ID unique peut être utilisé aussi pour ça mais si il y a eu des suppressions, les trous feront buggés l'alternance.

    L'autre approche serait d'ajouter un TClientDataSet + TDataSetProvider pour avoir le mode client qui recopie le contenu du TADOTable
    Mais pour les mises à jour, faudra gérer les ApplyUpdates et tout ça ... a voir au passage éventuellement pour grouper les mises à jour, toujours se méfier des accès concurrentiels et de la cohérence des données master-detail si l'on ne gère pas de transactions.
    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

  5. #5
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut
    Merci ShaiLeTroll, juste pour information je suis entrain de basculer de ADOTABLE de DBGO vers FDTABLE de FIREDAC avec adotable tous fonctionné très mais avec FDTABLE apparemment y a des choses qui ne son pas compatible et chaque fois je bute sur quelque chose , maintenant j'ai un problème de filtre entre deux dates avec AdoTable j'ai l'expression suivante qui fonctionne très très bien '
    filter:='DateBs>= #'+FormatdateTime('dd-mm-yyyy',DateDebut.Date)+ '# and DateBs<= #'+FormatdateTime('dd/mm/yyyy',datefin.Date)+'#';
    avec firedac elle ne fonctionne pas j'a fait des recherches sur internet j'ai trouvé cette solution
    filter:='DateBs>= {d ' + (FormatDateTime('yyyy-mm-dd', datedebut.Date))+'}'; qui marche très bien avec FDTABLE de FIREDAC mais sur une seule date (> ou =) je voudrais rajouter (< ou =) et je n'arrive pas.
    si vous pouvez m'aidé ca serais génial.

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    N'ayant jamais travaillé en FireDAC, je ne peux pas me prononcer, tout ce que je sais viens de la documentation.

    je connais BDE, ADO et les composants Devart, et pour la plupart, le bonne approche c'est le SQL et Query, éviter un maximum les Tables, pourquoi récupérer toutes les données pour ensuite filtrer, autant faire une requête qui filtre en amont sur le serveur mais je n'ai jamais travaillé sur ACCESS mais sur Paradox qui est le plus proche et bien plus sur MySQL, Oracle et SQL Server, tu ne travailles pas avec de la même façon.

    Les formats de date, c'est un long débat, entre le format SQL, le format local dépendant de l'OS ou du Provider de DB...
    la solution SQL + Bind Param

    Vu la migration, autant te débarrasser de ACCESS, passer de ADO en FireDac n'a pas beaucoup d'intérêt si tu gardes ACCESS.
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Réseau] Créer une connexion Internet
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/10/2002, 17h01
  2. Réseau Win/Linux
    Par ben91 dans le forum Développement
    Réponses: 2
    Dernier message: 08/09/2002, 22h59
  3. Comment subsituer un chemin par un autre dans un réseau ?
    Par Baillard dans le forum Développement
    Réponses: 3
    Dernier message: 11/08/2002, 14h01
  4. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40

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