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 :

Rafraichissement des Champs BCD


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut Rafraichissement des Champs BCD
    Bonjour,

    Je travaille avec Delphi 2006, et base de données Firebird.
    J'utilise les TSQLDataSet, DataSetProvider et TclientDataset.

    Lorsque le descripteur de champ de Mon TclientDataset possède des champs de type TBCDField, j'ai le message
    "22,33 n'est pas une valeur BCD correcte" (22,33 est en exemple)
    lorsque j'utilise les fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonclientDataset.Refresh
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonclientDataset.Refreshrecord
    Par contre,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonclientDataset.close;
    MonclientDataset.open;
    ne génère pas d'erreur.

    Comment puis je faire pour raffraichier l'enreg en cours de mon TclientDataset pouvant être modifié dans un traitement, sur un autre poste ..., sans fermé et réouvrir mon clientdataset (pas très rapide en cas de base importante).

    Cette erreur sur la fonction refresh/refreshrecord est peut être corrigé ?

    Cordialement
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  2. #2
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    sans fermé et réouvrir mon clientdataset (pas très rapide en cas de base importante).
    Et tu crois qu'il se passe quoi quand tu fais un Refresh ?
    Le clientdataset va demander au provider de relire les données. Il va faire un DoGetRecords, avec un Reset. Ainsi TDataSetProvider va commencer par faire un Close de son dataset...
    De plus si tu travailles avec un TSQLDataSet qui est un curseur unidirectionnel, il n'a pas d'autre possibilité que de relire tout le dataset pour faire le refresh.

    Autrement dit, un Refresh ne sera pas plus performant qu'un Close/Open.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2008, 10h20
  2. [SQL] Compter des champs indépendement l'un de l'autre
    Par rippey dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 29/10/2003, 15h35
  3. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48

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