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 :

rafraichissement d'une table oracle depuis delphi


Sujet :

Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut rafraichissement d'une table oracle depuis delphi
    Bonjour,
    Je veux rafraichir une dbgrid qui est connectée à une base de donnée oracle. J’utilise la fonction refresh, mais il reprend toutes les lignes et comme j’ai une grande base de donnée cela prend plusieurs seconde pour tout rafraichir, même s’il n’y a qu’une seule ligne de modifiée. J’aimerais juste raffraichir la ligne qui a été modifiée ou qui a été ajoutée sans recharger toute la tab, y a-t-il une fonction pour faire ça ? Je suis sous delphi 7
    Merci d'avance!
    Lobalidan.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    C'est toujours le problème !
    Il serait préférable de ne pas ouvrir la table en entier mais seulement un fragment voir un équivalent de LIMIT de MySQL ou TOP de MSSQL, je crois que c'est ROWNUM

    Voir l'équivalent d'un PacketRecords avec ton provider de D7 (BDE ? ADO ? autre ?)

    En limitant les records, comme le font bcp d'appli web, on économise, le serveur (CPU et RAM court terme), le traffic réseau et le client (CPU court terme et RAM long terme)

    Tu pourrais tenter d'utiliser un TClientDataSet qui serait une copie locale de la query
    Tu ne l'utilises pas pour mettre à jour mais juste comme un cache de lecture, lorsque tu relis la ligne, tu peux modifier le TClientDataSet pour refléter la modification avec le risque d'incohérence avec les autres lignes (accès concurrentiel)

    Mais qui a modifié la ligne ?
    Ton programme, tu connais son ID, recharger est facile
    Ton programme mais une autre instance sur le réseau, problématique de l'accès concurrentiel, voir ce que propose Oracle au sujet d'un système d'Event ou coder un système de notification interne à ton projet
    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. Rafraichir table Oracle depuis Delphi
    Par lobalidan dans le forum Débuter
    Réponses: 1
    Dernier message: 27/05/2013, 11h59
  2. [9i] Voir une Table Oracle sous Delphi
    Par stfanny31 dans le forum Débuter
    Réponses: 2
    Dernier message: 26/03/2013, 23h58
  3. Réponses: 2
    Dernier message: 22/10/2010, 16h14
  4. Showmodal puis rafraichissement d'une table
    Par navis84 dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/03/2005, 08h09
  5. supprimer un enregistrement vide dans une table oracle
    Par shurized dans le forum Bases de données
    Réponses: 11
    Dernier message: 07/09/2004, 16h55

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