SQL Server 调用C#。net写的Dll ,(分享我的HelloWorld测验)

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

SQL Server 调用C#。net写的Dll

1、构造DLL:首先我们要在。net里面创建一个类库工程,写个简单的HelloWorld

using System;

namespace MyDll

{

/// <summary>

/// Class1 的摘要说明。

/// </summary>

public class Class1

{

public Class1()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

public String sayHello()

{

return "HelloWorld";

}

}

}

MyDll是这个Dll的名字.编译以后,到你输出目录里找MyDll.dll生成了;切换到命令行模式,在MyDll.dll的目录下输入sn -k MyDll.snk生成密钥对;

然后回到你的vs.net工程下打开AssemblyInfo.cs看[assembly: AssemblyKeyFile("")]选项,输入你的密钥对路径‘..\\..\\bin\\Debug\\MyDll.snk’

重新编译MyDll.dll;最后是装配了,在命令行下输入:regasm MyDll.dll,成功后将MyDll.dll拷贝到C:\WINDOWS\assembly目录下

(这一步是听说的,不知道啥用。但是实际我试过不用拷贝也可以调用)。

2、

SQLSERVER调用事例:

declare @ret int

declare @object int

declare @src varchar(500)

declare @desc varchar(500)

declare @return varchar(500)

exec @ret=sp_OACreate 'MyDll.Class1',@object out

IF @ret <> 0

BEGIN

EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

SELECT hr=convert(varbinary(4),@ret), Source=@src, Description=@desc

RETURN

END

-- Call a method that returns a value.

EXEC @ret = sp_OAMethod @object, 'sayHello', @return OUT

IF @ret <> 0

BEGIN

EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

SELECT ret=convert(varbinary(4),@ret), Source=@src, Description=@desc

RETURN

END

print 'result='+@return

-- Destroy the object.

EXEC @ret = sp_OADestroy @object

IF @ret <> 0

BEGIN

EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

SELECT ret=convert(varbinary(4),@ret), Source=@src, Description=@desc

RETURN

END

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航