RDOConnexion VB6 et Windows 7

Signaler
Messages postés
2
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2011
-
Messages postés
2
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2011
-
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

Messages postés
1
Date d'inscription
samedi 9 avril 2011
Statut
Membre
Dernière intervention
9 avril 2011

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 !
Messages postés
2
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2011

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.