2010-04-07 13 views
1

Nous avons une application SP1 .NET 3.5 écrit en C# qui stocke les données dans une base de données SQL CE 3.5. Nous devons également accéder (en lecture seule) à ces données provenant d'une application VB6 héritée.Comment accéder à SQL CE 3.5 de VB6

Je ne sais pas si cela est possible. Il y a plusieurs approches à ce problème que je peux penser.

1) J'ai lu sur les connexions ADOCE, mais cela semble être une option pour Visual Basic embarqué ne

2) Je ne peux pas sembler obtenir une connexion de travail en utilisant des objets ADODB.Connection comme si

Dim MyConnObj As New ADODB.Connection 
' Microsoft.SQLSERVER.CE.OLEDB.3.5 
' Microsoft.SQLSERVER.MOBILE.OLEDB.3.0 
MyConnObj.ConnectionString = "Provider=SQLOLEDB;Data Source=c:\test.sdf" 
MyConnObj.Open 

Peut-être que cela est juste un mauvais choix de fournisseurs? J'ai également essayé les fournisseurs qui apparaissent comme commentaires ci-dessus et différentes chaînes de connexion, mais en vain. Les deux fournisseurs ne sont pas installés sur ma machine dev et ne seront pas installés sur la machine de mon client.

3) Peut-être il y a un moyen d'utiliser une approche plus générique comme ODBC? Mais je crois que cela se traduirait par un travail d'installation/déploiement, non?

Quelqu'un at-il une expérience avec ce scénario? Comme vous pouvez le voir, je suis vraiment à la recherche de bons points de départ. J'accepte également des réponses comme « Ceci est simple goutte mort et toi » aussi longtemps qu'ils viennent avec des directions de guidage ;-)

Répondre

5

Provider = Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source = c: \ test.sdf;

Vérifiez que le fournisseur est disponible. Démarrez Regedit.exe, ouvrez le nœud HKEY_CLASSES_ROOT, faites défiler vers le bas et vérifiez que vous voyez la clé Microsoft.SQLSERVER.CE.OLEDB.3.5. Si ce n'est pas le cas, avez pour l'installer. Download link.

+0

Cela semble raisonnable. Je l'ai eu à travailler après l'installation du fournisseur, merci beaucoup. Je vais devoir voir si l'installation du fournisseur va être un problème majeur ou non. – Masterfu

+1

C'est un problème que vous aurez à traiter, ne pas l'installer n'est pas une option. –

1

Selon connectionstrings.com, vous devriez être en mesure d'utiliser

Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=myPath\myData.sdf; 

Toutefois, le fournisseur OLEDB pour SQL Server CE ne fournit pas toutes les fonctionnalités.

+0

connectionstrings.com est une bonne idée. J'espère que les restrictions de ce fournisseur ne me dérangeront pas, les déclarations select devraient être assez simples. – Masterfu

0

Vous pouvez créer un composant C# COM-visible pour extraire les données de la VB6. Cela évite d'utiliser le fournisseur OLEDB potentiellement grincheux pour SQL Server CE.

Il a un autre avantage en ce qu'il ajoute une couche d'isolation entre le VB6 et la structure de base de données.