tmourlanne
Messages postés2Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention 9 avril 2011
-
24 mars 2011 à 19:10
tmourlanne
Messages postés2Date d'inscriptionmercredi 23 novembre 2005StatutMembreDerniè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.
tmourlanne
Messages postés2Date d'inscriptionmercredi 23 novembre 2005StatutMembreDerniè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"