में COM एक्सेस करना आशा है कि आप सभी का दिन अच्छा रहे!एसक्यूएल सीएलआर
मुझे पिछले तीन दिनों के बारे में सोचने के लिए आपकी सिफारिशों की आवश्यकता है। मेरे पास एक अप्रबंधित मंच में लिखा गया एक COM घटक है। घटक में एक तरीका है जो कुछ संवेदनशील डेटा देता है और मुझे जितनी जल्दी हो सके वैल्यू को स्टोर करने की आवश्यकता होती है।
मुझे COM ऑब्जेक्ट तक पहुंचने और मूल्य प्राप्त करने के लिए यूडीएफ को कॉल करने की आवश्यकता है। मैं इस की कोशिश की है अब तक और मैं इस अपवाद हो रही है:
Msg 6522, Level 16, State 2, Line 1
A .NET Framework error occurred during execution of user-defined routine or aggregate "GetRate": System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {D039A99F-5D45-42C7-A53C-507913D8C6D6} failed due to the following error: 80040154.
System.Runtime.InteropServices.COMException:
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at UserDefinedFunctions.GetRate(SqlString Source_Currency_Name, SqlString Destination_Currency_Name, SqlMoney Amount, SqlBoolean Mode)
ऐसा लगता है कि समारोह पंजीकृत COM घटक (80040154) नहीं देख सकता। क्लियर असेंबली अप्रतिबंधित के रूप में पंजीकृत है। मैंने यूडीएफ को 'एस' या विंडोज इंटीग्रेटेड मोड में कॉल करने का प्रयास किया। इसमें कोई फर्क नही है।
यह है COM घटक और कोड आरंभ के लिए कोड ठीक बाहर एसक्यूएल काम कर रहा है:
Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("D039A99F-5D45-42C7-A53C-507913D8C6D6"), true))
वहाँ वैसे भी इस काम कर रहे लोगों को बनाने के लिए है? एक तरफ या किसी अन्य को मुझे एक यूडीएफ की आवश्यकता है, इस COM ऑब्जेक्ट को कॉल करें या कम से कम कुछ यूडीएफ के माध्यम से .NET रिमोटिंग के साथ कुछ विंडोज़ सेवा तक पहुंचें। इस सुझाव के माध्यम से मुझे हर सुझाव की सराहना की जाएगी।
सभी को धन्यवाद।
इस लिंक को जांचें http://stackoverflow.com/questions/7289620/activator-createinstanceguid-works-inside-vside-but-not- वैकल्पिक रूप से –
@DJKRAZE मैंने उल्लेख किया है कि कोड SQL के बाहर ठीक काम कर रहा है। :) – Rikki
@BehnamEsmaili ऐसा लगता है कि लिंक ने एसक्यूएल के बाहर COM ऑब्जेक्ट शुरू करने की समस्या हल कर दी है और मुझे इसके साथ कोई समस्या नहीं है जैसा कि मैंने पहले ही उल्लेख किया है। – Rikki