Problème de types avec ADO et DAO [Résolu]

Signaler
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
-
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
-
Bonjour

Dans mon programme j'ai des fonctions qui me retournent un RecordSet.

Pour des questions de performances, j'utilise les couples : DAO/Access et ADO/SQL Server (en fonction d'un fichier de config).

Le problème est que les objets recordsets sont différents, existe-t-il une méthode pour éviter de retourner un Object ?
Car dans mon programmes ces fonction sont utilisées un peu partout, et il n'est pas envisageable de penser à tout changer (sauf si c'est pas possible autrement).

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site

6 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
96
Ah moins de faire une classe qui soit une sorte d'adaptateur entre ces deux recordsets, je vois pas trop comment faire autrement : vu que tu n'as pas de notion d'héritage en VB, les deux recordset en question sont bien différents.
L'astuce : faire une classe qui possède un recordset DAO, un recordset ADO et qui possède les fonctions communes dont tu as besoin : moveNext, EOF, etc.

Ainsi, ta fonction renvoie une instance de cette classe, et elle, selon si elle possède un recordset ADO ou DAO, appelle les bonne méthodes.
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
143
Bonjour

Bon j'ai confirmation, va falloir passer par les objects ou une classe, bcp de boulot en perspective .

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
143
Bonjour

Merci darksidou.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
143
Bonjour

Au passage sais-tu comment implémenter le ! comme pour les recordsets dans une classe perso ?

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
96
Je ne pense pas que ce soit possible ! De toute façon, je trouve que c'est une très mauvaise habitude : ca simplifie peut-être la saisie, mais je trouve cà illisible et vraiment pas standard !
Il vaut mieux un bon vieux :
recordset.fields("NomDuChamp").Value plutôt qu'un : recordset!NomDuChamp au moins tu sais ce que tu fais !
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mai 2020
143
Bonjour

La question continue sur http://www.vbfrance.com/infomsg_OPERATEUR_1000072.aspx

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site