Question

Je suis en train d'utiliser la bibliothèque de cryptage Chilkat dans SQL Server 2008 via un ensemble CLR. En raison de la façon dont la bibliothèque Chilkat est mis en place (voir leur message ci-dessous), je ne peux pas le faire directement et le besoin de créer un wrapper de classe qui fait référence à la bibliothèque Chilkat et encore est entièrement géré la façon dont SQL Server nécessite.

Voici la réponse de Chilkat quand j'ai demandé comment interfacer leur bibliothèque directement par serveur SQL (la version courte est que vous ne pouvez pas).

L'assemblage .NET Chilkat est un En mode mixte assemblage, ce qui signifie que le la mise en œuvre est écrit en C ++ et compile en code natif. L'extérieur couche est une interface gérée. J'ai appris d'autres clients dans le passé que dans cette situation, vous pouvez résoudre le problème en créant simple wrapper bibliothèque de classes dans Visual Studio (Entièrement géré) où l'emballage Les références d'assemblage Chilkat assemblage, et les objets SQL Server au lieu de référence de votre emballage Assemblée. Étant donné que vous êtes probablement seulement appeler une poignée de Chilkat (méthodes et propriétés), il ne devrait pas être beaucoup à écrire les quelques méthodes de transmettre l'appel au enveloppées objet chilkat et retourner le résultat.

Ok. Alors, voici le problème. Lorsque je crée un projet CLR dans Visual Studio 2008, je suis totalement incapable d'ajouter une référence à la bibliothèque Chilkat (ou tout autre d'ailleurs). Il y a pas onglet Parcourir / bouton / lien ou autre pour ajouter une bibliothèque de référence supplémentaire. Il est tout simplement pas là.

S'il vous plaît aider avant que je suis obligé d'avoir recours à Clipper ou dBase3 +!

: Les détails. SQL Server 2008, Visual Studio 2008, la bibliothèque d'évaluation Chilkat Avril 2011

Était-ce utile?

La solution

SQL Server est un pointilleux de peu sur ce que les assemblages CLR il va permettre de charger et Visual Studio vous empêche d'ajouter une ancienne référence de montage bon gré mal gré.

Ceci est parce que vous devez charger des ensembles de tiers via le Nouvelle Assemblée outil trouvé sous le nœud « programmabilité » pour votre base de données (clic droit sur les assemblées), ou en utilisant CREATE ASSEMBLY .

Cela donne serveur SQL une chance d'inspecter l'assemblage et validation pour vous assurer qu'il est d'un type pris en charge pour une utilisation avec l'intégration SQL CLR. Il fait cela pour veiller à ce que l'assemblée n'est susceptible de tuer des problèmes de stabilité du serveur SQL ou la cause.

Cette section de SQL Books Online couvre les restrictions SQL CLR:

Intégration CLR Programmation Restrictions Modèle

L'assemblée Chilikat échouera au PEVerify essai (décrit dans la section EXTERNAL_ACCESS), car en mode mixte ensembles contenant des fonctions non gérées ne sont pas vérifiables tapez le code de sécurité.

Si vous essayez d'installer un assemblage en mode mixte invérifiable vous obtiendrez une erreur comme:

CREATE ASSEMBLY pour l'assemblage « ChilkatDotNet2 » a échoué parce que Ensemble « ChilkatDotNet2 » est incorrect ou non un ensemble pur .NET. Invérifiable tête PE / stub natif. (Microsoft SQL Server, erreur: 6544)

Il y a un thread de discussion qui couvre ce sujet et quelques contournements de travail proposées.

scroll top