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

VB 6 et antérieur Discussion :

des problemes sur le code ADO


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Points : 80
    Points
    80
    Par défaut des problemes sur le code ADO
    Bonjour à tous les developeurs
    je suis entrain de travailler sur l'acces aux donnée avec ADO. et il ya des point d'ombre dont j'ai besoin d'eclaicissement.
    en effet voici mes preocupations
    1. la synchronisation d'un recordset: quel avantage utiliser une connexion asychrone par rapport à une connexion synchrone? quand fautil choisir l'un au lieu de l'autre?
    2. faisant une programmation evenementielle du recordset est ce que les evenements tels que willmove, movecomplete se declenche automatiquement? si oui comment est ce que celà fonctionne?
    3.comment choisir entre les evenements willchangeFields,willmove,Willchangerecord et willchangerecordset pour pouvoir annuler une opération qui a été effectuée? Ici je suis un peu confus car dans les tutos tous ont le meme objectif.
    4. enfin j'aimerais avoir des explications, du moins plus claires,sur la difference entre les propriétés value,underlyingvalue,originalvalue de l'objet Field.
    merci de votre reponse

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Citation Envoyé par bambi98
    1. la synchronisation d'un recordset: quel avantage utiliser une connexion asychrone par rapport à une connexion synchrone? quand fautil choisir l'un au lieu de l'autre?
    C'est fondamentalement une question de stratégie. Si tu n'as pas besoin que toutes les données soit traitées pour que la suite de ton code puisse s'exécuter, une connexion asynchrone et plus ntéressante puisque la lourdeur du traitement ADO est masquée.

    Citation Envoyé par bambi98
    2. faisant une programmation evenementielle du recordset est ce que les evenements tels que willmove, movecomplete se declenche automatiquement? si oui comment est ce que celà fonctionne?
    Si ton Recordset supporte les évènements(WithEvents) ca se déclenche automatiquement. Dans le cas de ces deux évènements, le premier se déclenche lorsqu'une méthode va faire changer la position courante, le second se déclenche lorsque la position à changée. Il faut lire l'argument adReason pour savoir qu'elle méthode demande le changement de position.

    Citation Envoyé par bambi98
    3.comment choisir entre les evenements willchangeFields,willmove,Willchangerecord et willchangerecordset pour pouvoir annuler une opération qui a été effectuée? Ici je suis un peu confus car dans les tutos tous ont le meme objectif.
    WillMove et WillChangeRecordset ne sont normalement pas utilisés pour annuler les opérations de mise à jour.
    Les deux autres vont dépendre globalement de ta stratégie d'annulation. Si tu veux pouvoir sur un même enregistrement annuler certaines modifications de champs et en valider d'autres, tu utiliseras WillChangeField, si ta stratégie au niveau de l'enregistrement est de type tout ou rien, tu préfèreras WillChangeRecord

    Citation Envoyé par bambi98
    4. enfin j'aimerais avoir des explications, du moins plus claires,sur la difference entre les propriétés value,underlyingvalue,originalvalue de l'objet Field.
    Soit un objet field appartenant à un enregistrement. Il va posséder trois valeurs définies telle que :
    Value = Valeur en cours
    UnderlyingValue = Valeur dans la source de données
    OriginalValue = Valeur lors du remplissage original du champ.

    Prenons l'exemple suivant. Mon objet Field contient la valeur 3 lors du remplissage du recordset. A ce moment, les trois propriétés sont égales.
    J'affecte 2 à la valeur du champ. A ce moment, Value vaut 2, OriginalValue et UnderlyingValue valent toujours 3. Je met à jour mon Recordset. UnderlyingValue et Value valent alors 2. OriginalValue vaudra 3 si le recordset n'esr pas resynchronisé, 2 sinon

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 159
    Points : 80
    Points
    80
    Par défaut
    Bonjour Bidou
    Je te remercie d'entrée pour toutes ces explications qui ont veritablement éclaici les points d'ombre.
    je vais seulement te poser d'autres questions pour en savoir encore plus
    Citation Envoyé par Bidou
    C'est fondamentalement une question de stratégie. Si tu n'as pas besoin que toutes les données soit traitées pour que la suite de ton code puisse s'exécuter, une connexion asynchrone et plus ntéressante puisque la lourdeur du traitement ADO est masquée.
    je me demande ici s'il n'ya pas risque d' erreurs tels que des conflits d'utilisateurs ,des transactions qui se confondent,ou autres qui peuvent se produire.
    Citation Envoyé par Bidou
    Si ton Recordset supporte les évènements(WithEvents) ca se déclenche automatiquement. Dans le cas de ces deux évènements, le premier se déclenche lorsqu'une méthode va faire changer la position courante, le second se déclenche lorsque la position à changée. Il faut lire l'argument adReason pour savoir qu'elle méthode demande le changement de position.
    Si le recordset execute une instruction SQL (par exemple un INSERT INTO plutot que ADDNEW)est ce que les evenements vont toujours se déclencher?
    Merci pour ta reponse

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Citation Envoyé par bambi98
    je me demande ici s'il n'ya pas risque d' erreurs tels que des conflits d'utilisateurs ,des transactions qui se confondent,ou autres qui peuvent se produire.
    Les transactions peuvent toujours comporter un risque selon leurs niveaux d'isolation. Si celui- ci est faible, alors les opérations asynchrone peuvent en effet présenter une lecture sale partielle. Pour ce qui est du multi utilisateurs, c'est normalement sans influence

    Citation Envoyé par bambi98
    Si le recordset execute une instruction SQL (par exemple un INSERT INTO plutot que ADDNEW)est ce que les evenements vont toujours se déclencher?
    Merci pour ta reponse
    Un recordset ne doit en théorie pas exécuter de requête action, et en tout état de cause la simple exécution d'une commande ne déclenchera pas d'évènement sauf si tu es en asynchrone ou que tu refais un Open

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

Discussions similaires

  1. comment vous résolvez des bugs sur du code javascript
    Par bigs3232 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/12/2010, 20h11
  2. Mettre des mots sur un code
    Par isis1be dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/06/2008, 18h16
  3. petit probleme sur mon code
    Par MORPHEUS50 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/05/2007, 18h16
  4. Réponses: 1
    Dernier message: 18/07/2006, 20h54

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