RDOConnexion VB6 et Windows 7

tmourlanne Messages postés 2 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 9 avril 2011 - 24 mars 2011 à 19:10
tmourlanne Messages postés 2 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 9 avril 2011 - 9 avril 2011 à 08:13
Bonjour,

J'ai conçu un programme en VB6 qui fonctionne depuis des années sur des postes en XP. Cette appli attaque une base SQL2005 en RDO

Ayant acheté un W7Pro (64bits), étant administrateur du poste, je n'arrive plus à ouvrir ma base.

A l'instruction
Set env = rdoEngine.rdoEnvironments(0)
j'ai une erreur 490, "le composant ActiveX ne peut créer l'objet", j'ai cherché sur quelques forums et n'ai trouvé que des réponses inadaptées.

J'ai installé VB6 sur le poste, ouvert les sources pour vérifier qu'aucune référence ne manquait. Tout semble marcher mais je ne peux pas compiler le programme, la même erreur apparait lors de la compilation.

Pour info, en ADO, la base s'ouvre sans souci... mais il faudrait réécrire - et tester - trop de lignes.

Quelqu'un peut-il me suggérer une solution ?

D'avance merci

2 réponses

lbouchet Messages postés 1 Date d'inscription samedi 9 avril 2011 Statut Membre Dernière intervention 9 avril 2011
9 avril 2011 à 00:51
Bonjour,

J'ai le même problème , une vieille appli que je tente à présent de faire tourner sur Win7.

Avez vous pu résoudre ce problème ?
Car la soluce m'intéresserait

Merci !
0
tmourlanne Messages postés 2 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 9 avril 2011
9 avril 2011 à 08:13
Rebonjour,

En fait, je n'ai pas trouvé la solution car je pense qu'il n'y en n'a pas. Je pense que Microsoft a abandonné RDO après quelques années de bons et loyaux services. Ils ont peut être communiqué là dessus mais je n'ai rien trouvé.

Bref, il faut recoder (quand on a les sources sinon je pense qu'on est mal) et ma foi ça se fait très bien :

1/ Remplacer la référence de RDO par une référence vers Microsoft Active Object

2/ Remplacer les déclarations de connexion (avantage : pas d'ODBC à créer). Il faut trouver le bon Provider ou Driver en fonction de sa base de données

3/ Remplacer tous les "as RdoResulset" par des New ADODB.Recordset

4/ Remplacer tous les "Set RST = Cn.OpenResultset(Requete, rdOpenForwardOnly)" (ou équivalent) par "RST.open Requete, CONNEXION, adOpenForwardOnly"

5/ Remplacer tous les "RdoColumns" par "Fields"

C'est tout.
0
Rejoignez-nous