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 :

Travailler en asynchrone avec un recordset ADO


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Travailler en asynchrone avec un recordset ADO
    Bonjour à tous,

    J'expérimente actuellement l'ouverture générique (requête et arguments d'ouvertures variables) en asynchrone d'un recordset ADO attaquant une base SQL Server (sous VB6).
    Tout fonctionne correctement (l'appli n'est pas suspendue pendant le traitement de la requête et le retour des enregistrements par le serveur), mais il me manque une information importante : le nombre d'enregistrements total retournés par la requête, avant même le chargement des enregistrements du coté client.
    En effet, j'avais imaginé pouvoir afficher le pourcentage de récupération des enregistrements, histoire d'assurer un minimum de transparence pour l'utilisateur.
    J'ai essayé diverses méthodes, mais aucune ne m'a permit de récupérer la précieuse information, à savoir :
    - interrogation de RecordCount au premier évènement FetchProgress => provoque le chargement total du recordset en mode synchrone... (ma foi c'est logique)
    - concaténation de "; PRINT @@ROWCOUNT" à la suite de la chaîne SQL, dans le but de provoquer une erreur voulue, mais cette erreur ne se produit jamais (d'ailleurs, la concaténation de "; PRINT 1/0" ne provoque aucune erreur non plus... j'en conclus donc que la méthode Open s'arrête au premier lot de la chaîne SQL contenant une clause SELECT)
    - utilisation de la méthode Execute de l'objet Connection en asynchrone, à la place de Open du recordset, d'une part pour tenter d'utiliser l'argument par référence RecordsAffected (ne fonctionne pas); et d'autre part de récupérer @@ROWCOUNT part la concaténation de "; SELECT ROWCOUNT" à la fin de la chaine contenant la requête, mais ça ne marche pas non plus.

    J'avoue arriver un peu à court de solutions, et apprécierait grandement vos avis experts

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 95
    Points : 87
    Points
    87
    Par défaut
    Salut,

    Je ne sais pas si j'ai tout compris....

    Tu voudrais savoir le nombre d'enregistrement que tu as sur ton select + le retour de ton select ?

    A ce que j'ai compris, tu as dans ta procédure un premier SELECT puis un 2ème qui te renvoi le nombre de ligne, c'est bien ça ?

    Coin.

Discussions similaires

  1. [AC-2007] Remplir une feuille de données avec recordset ADO
    Par Peper89 dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/06/2010, 12h49
  2. Réponses: 13
    Dernier message: 28/11/2006, 09h40
  3. [C#]Travailler en synchrone avec des objets asynchrone
    Par mister3957 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2006, 19h12
  4. [ADO] faire une Update avec un recordset
    Par maniolo dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 21/08/2006, 23h18
  5. [VBA] Requête + date pour travailler avec des recordsets
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/08/2006, 16h15

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