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 :

Problème! Autorefresh des TTable et TQuery


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut Problème! Autorefresh des TTable et TQuery
    Bonjour à tous,
    Durant le développement de mon application sous Delphi5 et SQL Server 2000, j'ai utilisé plusieurs TTable dans plusieurs fiches pour une seule table de la base, ce qui m'a empéché d'avoir des mise à jour des fiche pour chaque changement surtout que mon application est en réseau.
    J'ai essayé d'attribuer la valeur AutoRefresh des mes tables ou requêtes à True, mais ça marche pas.
    Je sais pas aussi est ce que je doit utiliser la fonction AutoGenerateValue.
    Je veux pas non plus mettre des Refresh sur toutes mes tables et requêtes et sur chaque changement de la base de données

    Merci de m'aider

    EDIT: Pour être plus précis, comment manipuler les composants TTable et TQuery dans une application réseau.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par défaut
    Passer par le BDE pour SQL Server !
    Disons que ce n'est pas conçu pour !

    Pour gérer le rafraichissement, tu peux le faire lorsque tu ouvres une fenêtre (tu as une grille, pour éditer une ligne tu DOIS passer par un formulaire et relire les données), dans un Timer (ouch !!!) ou tout simplement avec F5 !

    ADO aurait été un meilleur choix même si tu aurais surement autant de soucis avec les refresh ... avec des messages particulièrement pas clair !
    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 confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    Merci pour la réponse.
    Désolé si je suis un petit peu novice, mais j'ai pas compris que veut tu dire par ceci :
    Citation Envoyé par ShaiLeTroll Voir le message
    tu DOIS passer par un formulaire et relire les données), dans un Timer (ouch !!!) ou tout simplement avec F5
    Et un timer va prendre beaucoup de mes ressources système, donc j'évite de l'utiliser vu que je manipule pas mal de données.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par défaut
    Citation Envoyé par samirmember Voir le message
    Désolé si je suis un petit peu novice, mais j'ai pas compris que veut tu dire par ceci
    Qu'est que tu n'as pas compris ?
    Formulaire = TForm
    "tu DOIS passer par un formulaire" = Pas d'édition par une grille mais via une fenêtre qui récupère l'enregistrement à jour
    "relire les données" = Refresh
    "simplement avec F5" = L'utilisateur appuie sur F5 est ça fait Refresh
    On est limite du "C'est pas Faux !"

    un Timer, c'est très léger, cela ne consomme très peu, relancer le SQL (ou Close\Open d'un TTable), toutes les 5 secondes, ça ne sera vraiement pas la mort ! Sauf si tu as 1000 postes là, ton server commencera à ne pas apprécié ! (du moins j'ai jamais atteind ce nombre avec le BDE, et encore je ne parle pas de la limitation de connexion selon la licence)

    Sinon, voir si SQL Server ne propose pas un système d'alerte comme celui d'InterBase (IBEvents) qui t'indiquerait si il est nécessaire de rafraichir la Base de Données !
    Peut-être via des VIEW et TRIGGER !

    Tu te dis novice mais le problème de synchronisation dans une application DB réseau n'est pas même pas géré par la plupart des logiciels dont j'ai la maintenance (si ce n'est aucun en fait), ... on ne s'amuse pas à rafraichir les grilles, l'ergonomie de l'application fait que lorsque l'on doit modifier un enregistrement, on recharge spécifiquement celui-ci et lors de la fermeture d'un formulaire, on relance le SQL lié à la Grille (un refresh ou Close\Open tout en essayant de conserver le curseur au ben endroit)

    J'ai déjà participé à un logiciel qui gérait cela avec un "feu tricolore"
    Vert = Fiche Libre
    Orange = Fiche en Cours de Visualisation par un autre utilisateur
    Rouge = Fiche en Cours de Modification par un autre utilisateur

    C'était une application Web avec bcp de javascript pour rafraichir les états, l'avantage, c'est que le serveur de l'application savait tout ce qui se passait et donc pouvait avertir les différents clients
    La version client lourd le faisait aussi via une connexion TCP\IP avec le serveur, ce dernier envoyait les changements d'état aux différents clients ouvert sur la même fiche (la couche de communication entre le client et le serveur garantissait l'échante des états et des données)
    Du vrai multi-tiers !
    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

Discussions similaires

  1. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 11h17
  2. Réponses: 5
    Dernier message: 19/08/2004, 11h11
  3. Réponses: 8
    Dernier message: 10/08/2004, 11h49
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 16h26

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