2010-01-14 35 views
0

我有Windows Server 2003 x64标准版SP2与OLE错误在SQL

的Microsoft SQL Server 2005 - 9.00.4035.00(X64),企业版(64位)在Windows NT 5.2(内部版本3790:Service Pack 2的)

我下载CAPICOM再发行平台SDK:http://www.microsoft.com/downloads/details.aspx?FamilyId=860EE43A-A843-462F-ABB5-FF88EA5896F6&displaylang=en

和 安装在C它:\ WINDOWS \ SysWow64资料与C:\ WINDOWS \ SysWow64资料\ REGSVR32.EXE的CAPICOM.dll并得到了成功地注册。

当我试图运行

DECLARE @S varchar(255) 
DECLARE @D varchar(255) 
DECLARE @O int 

EXEC @C = sp_OACreate 'CAPICOM.EncryptedData', @O OUT 
IF @C <> 0 
BEGIN 
    EXEC sp_oageterrorinfo @O, @S out, @D out 
    SELECT err=CONVERT(VARBINARY(4),@C), [email protected], [email protected] 
    RETURN 
END 

,我得到错误信息。

0x80040154 ODSOLE Extended Procedure Class not registered 

我该怎么办?我应该如何检查CAPICOM.DLL是否正确注册?

回答

1

这个答案有一个演示如何注册CAPICOM的替代品,以便它可以在64位进程中使用。

其实我已经做到了这一点,以使用64位SQL Server CAPICOM并能正常工作。

1

这里是reason
这个组件有64位版本吗?

+0

非常感谢。我恐怕没有这个组件的64位版本。 – THEn 2010-01-14 18:24:32

1

CAPICOM不会船舶64位据我所知,是deprecated

CAPICOM是一个32位的唯一部件 可用在 以下操作系统使用:WINDOWS Server 2008中,Windows Vista中, Windows XP和Windows 2000.而是使用.NET Framework实现安全 功能。欲了解更多信息,请参阅 Alternatives to Using CAPICOM

的加密功能之间的SQL 2005 itslef和CRL程序访问的.Net密码,坦白说,我看不出有任何理由要坚持使用COM加密API。当然,我知道你可以拥有遗留代码并需要支持它,为新的开发定义一个很大的不可能。

+0

关于支持的第三方应用程序。在64位SQL Server中有没有解密用CAPICOM加密的数据的方法? – THEn 2010-01-14 18:46:33

+0

SQL Server自己的函数不会解密CAPICOM加密数据,因为它们使用自己的格式(它们附加了初始化向量)。但是CLR函数或过程完全能够使用System.Cryptography组件来解密CAPICOM数据。 – 2010-01-14 19:02:18

相关问题