ADO Recordset

ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009 - 19 juil. 2005 à 09:23
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 - 24 juil. 2005 à 22:42
Est il possible de faire une requête sur un objet Recordset?
Le recordset est initialisé par une requête sur une base de donnée:
Select * from MyTable
Je voudrais avoir en permanence le résultat de cette requete ds un objet et faire des recherches sur cette objet(Where ...)

11 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
19 juil. 2005 à 10:04
salut,



je sais plus bien mais je pense que le seul moyen d'obtinir un
RecordSet (résultat d'une requête) c'est OpenRecordSet ou
CreateDynaset...je ne pense pas que l'on puisse mettre à jour un
Recordset à partir de lui-même...il réexécuter une requête à chaque
fois si le critère change...

ShareVB
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
19 juil. 2005 à 13:20
Bonjour,

Que veux-tu faire exactement, placer le champ désigné par un recordSet
dans un combobox ou un listBox par exemple, pour pouvoir visionner
l'ensenble des données du champ ???



jpleroisse
0
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
19 juil. 2005 à 13:34
Non désolé en fait je me posais la mauvaise question.
En fait je veux avoir en permanence une référence sur une base de donnée (en fait une seul table)
et selon les besoins faire des requête sur la table. Donc en fait j'ai un objet AdoDB.connection qui fait référence à la bdd et je me sert de recordset ds les fonctions qui font des requêtes sur cette table.

Voila j'aurais du réfléchir av de poser la kestion.
Est-ce bien comme cela que l'on utilise ADO?
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
20 juil. 2005 à 10:19
salut,



la connexion, c'est la seule chose dont tu as besoin tout le temps...
tu fais tes requêtes dessus...mais ce n'est pas un recordset : c'est
une liaison entre toi et la bd

ShareVB
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
20 juil. 2005 à 12:47
Mais les requêtes sur la connection je les fait fait bien avec des recordset non??
0
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
20 juil. 2005 à 17:22
Bon j'ai avancer un petit peu avec les objets ADODB recordset et
connection. Je pose la question car vous avez l'air de les avoir
utiliser plus que moi tout de même. Il y a deux solutions pour
permettre de faire ce que je veux.

(Je rappel le sujet: j'ai une base de donnée constituée d'une seul
table a laquelle je dois toujours faire rédéfrence et dans le prog je
veux faire ponctuellement des requêtes sur cette table.)



solution 1: Un objet connection ouvert en permanence et dès que j'ai le
besoin, j'ouvre un objet recordset avec comme source une requête sur la
table. Je ferme le recordset apres avoir fait mes tests sur son
contenu.)



solution 2: J'ouvre un objet recordset en permanence et lorsque j'en ai
besoin je fais des requête sur cette objet (il contient toute la table)
à l'aide de la méthode <Find>



Selon vous laquelle des méthodes est la plus performante (celle que vous auriez utilisez)

Merci pour ces réponses
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
21 juil. 2005 à 08:58
salut,



la solution classique est la première : une requête SQL est toujours plus rapide...

ShareVB
0
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
21 juil. 2005 à 16:18
La solution classique est effectivement la première.



Cependant, elle m'impose d'ouvrir un objet recordest à chaque fois que je veux faire une requête (rs.open "SELECT * FROM ...")

Hors il existe dans l'objet Recordset une méthode find() qui me place
directement sur l'un des enregistrements du recordset. A mon avis la
méthode find prend bcp moins de temps que la méthode open du recordset.



Donc il y a du pour et du contre dans les deux cas: soit je n'utilise
que l'objet connection en permanence et à chaque fois que c'est
nécessaire, je fais des requête avec recordset.open "ma_requête", ->
les objets sont léger mais si il y a bcp de requêtes, ca risque d'être
assez lent



Soit j'ai un objet recordset (grosse table) en permanence mais les
requêtes sont très rapides puisque je n'ouvre le recordset qu'une seul
fois.



Si il y a bcp de requêtes à faire en peu de temps (c'est mon cas) la deuxième solutions me parait plus adéquate

Etes vous d'accord avec moi???
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
22 juil. 2005 à 10:40
salut,



c'est vrai que s'il n'y a qu'une table...il suffit de comparer les deux
méthodes en les codant et en comparant le temps d'exécution (par ex
avec QueryPerformanceCounter)...

ShareVB
0
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
24 juil. 2005 à 22:35
Et elle marche commend cette méthode 'QueryPerformanceCounter' pour info?
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
24 juil. 2005 à 22:42
Salut,

Pour la méthode QueryPerformanceCounter tu peux consulter la source #5206


++

Zlub
0