Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 2016
-
5 mars 2011 à 16:24
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 2016
-
5 mars 2011 à 18:46
Bonjour à tous,
Toujours dans mes débuts sous .NET, j'ai une question en 2 points:
Sous VB6 j'avais créé une DLL regroupant un certain nombre de fonctions/commandes SQL. Les fonctions étaient regroupées dans des modules de classe dont la propriété Instancing était à GlobalMultiUse ce qui me permettait de les appeler directement par leur nom dans mes autres applis VB6 pour peu que j'ai une référence à cette DLL.
1ère question: Est-il possible de réutiliser cette DLL telle que dans mon appli .NET ?
2ème question: Si je réécris from scratch cette DLL, je créé sous .NET une nouvelle bibliothèque de classe mais je n'ai trouvé nulle part la propriété Instancing ou son équivalent. Ceci pour ne pas déclarer une classe dans mes applis et ensuite appeler mes fonctions ?
Pour essayer de résumer:
Sous VB6 je fais:
MyRecordset = SQL_RecordsetQuery()
avec MyRecordset dans une appli X et la fonction dans une DLL Y externe.
J'ai des quantités d'applis qui tournent très bien sur ce modèle.
Sous .NET, suis-je obligé de faire
Dim oSQL as MyClassedeFonctionsSQL (résidant dans une DLL externe)
MyRecordset = oSQL.SQL_RecordsetQuery()
En espérant avoir été assez clair.
Calade
A voir également:
Un projet avec un type de sortie de bibliothèque de classe ne peut pas être démarré directement
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 5 mars 2011 à 17:38
Salut NHenry,
et merci de ta réponse.
1) OK, je l'ai rajouté, mais j'obtiens toujours la même erreur:
"SQL_Connect n'est pas déclaré. Il est peut-être inaccessible en raison de son niveau de protection", y a t'il quelque chose que j'ai loupé ?
Ci-dessous l'appel:
P_cnnDBLauncher = SQL_Connect(strBaseName)
P_cnnDBLauncher est déclaré Public en String pour contenir ma chaîne de connexion (précision, je suis resté en ADO 2.8, chaque chose en son temps !).
2
MyRecordset = EsapceDeNomDeLaDll.MyClassedeFonctionsSQL.SQL_RecordsetQuery()
Quel espace de nom ? A moins que tu ne parles de ADO.NET ?
Calade
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 5 mars 2011 à 18:16
OK, je pense avoir pigé le principe pour réutiliser mes DLL, par contre si maintenant il reconnait bien ma fonction, j'ai une autre erreur:
Erreur 1 Une référence à un membre non partagé requiert une référence d'objet.
Si je comprends bien, ma fonction étant Public et non Shared (et pour cause), il faut que je déclare ma classe avant ?
Calade
Vous n’avez pas trouvé la réponse que vous recherchez ?
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 5 mars 2011 à 18:46
Bonjour,
Oui, c'est bien ce que je craignais.
Donc ça aussi ça change par rapport à VB6 puisque je n'avais pas besoin d'instancier quoi que ce soit, la référence suffisait.