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

server

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

时间: 2024-11-05 06:12:13

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

Sql Server 调用DLL

原文:Sql Server 调用DLL 背景 在处理数据或者分析数据时,我们常常需要加入一定的逻辑,该些处理逻辑有些sql是可以支持,有些逻辑SQL则无能为力,在这种情况下,大多数人都会编写相关的程序来处理成自己想要的数据,但每次处理相同逻辑时,都需要运行一次程序非常麻烦. 案例 IE地址栏上的地址在记入日志表中时,其数据是通过编码的,如果我们想要看到明文,则需要相应的解码,可以用SQL语句来实现,如: 摘自:http://blog.csdn.net/ruijc/article/details/

SQL Server调用存储过程sp_rename出现的问题

环境:SQLServer 2008 R2 问题:当调用存储过程sp_rename出现"参数@objname不明确或所声明的 @objtype (column)有误". 解决: 看以下几条命令,如果先执行前两句,再接着执行第三句 会出现什么问题? use Test;--使用数据库 sp_rename 'd_s_t.avg_grade','avg_g','column';--d_s_t是表名,avg_grade是原来的列名,avg_g是新的列名 exec sp_rename 'd_s_t.

那在sql server中该怎么写才能达到mysql中的分组效果呢,分出的结果不一样

问题描述 那在sql server中该怎么写才能达到mysql中的分组效果呢,分出的结果不一样 SELECT CASE WHEN AGE <= 10 THEN '1' WHEN AGE > 10 AND AGE <= 20 THEN '2' WHEN AGE > 20 AND AGE <= 30 THEN '3' WHEN AGE > 30 AND AGE <= 40 THEN '4' WHEN AGE > 40 AND AGE <= 50 THEN

sql-用C#写服务器程序连接本地SQL SERVER,该怎么写?

问题描述 用C#写服务器程序连接本地SQL SERVER,该怎么写? protected void ImageButton1_Click(object sender, EventArgs e) { string UserName = Request.Form["Username"].ToString().Trim(); string UserPwd = Request.Form["pwd"].ToString().Trim(); SqlConnection scon

C#如何调用一个DELPHI写的dll

问题描述 兄弟们我有个问题请教一下:我用C#调用一个DELPHI写的dll,dll中有integer,pchar,single数据类型,integer和single类型都能读出来就是读pchar类型有问题,这个函数是个读卡函数,调用会报这个错"对PInvoke函数"WindowsApplication1!WindowsApplication1.mz_读医保卡::Freadcard"的调用导致堆栈不对称.原因可能是托管的PInvoke签名与非托管的目标签名不匹配.请检查PInv

SQL SERVER调用存储过程小结_MsSql

在SQL Server数据库的维护或者Web开发中,有时需要在存储过程或者作业等其他数据库操作中调用其它的存储过程,下面介绍其调用的方法 一.SQL SERVER中调用不带输出参数的存储过程 SQL 代码 --存储过程的定义 create procedure [sys].[sp_add_product] ( @m_viewcount int = 0 ,@m_hotcount int = 0 ) as go --存储过程的调用 declare @m_viewcount int declare @m

SQL SERVER调用存储过程小结

在SQL Server数据库的维护或者Web开发中,有时需要在存储过程或者作业等其他数据库操作中调用其它的存储过程,下面介绍其调用的方法 一.SQL SERVER中调用不带输出参数的存储过程 SQL 代码 --存储过程的定义 create procedure [sys].[sp_add_product] ( @m_viewcount int = 0 ,@m_hotcount int = 0 ) as go --存储过程的调用 declare @m_viewcount int declare @m

SQL Server中减小Log文件尺寸的方法分享_MsSql

首先use [数据库名称];exec sp_helpfile; 使用sp_helpfile查询可知道log 文件的逻辑名称,然后就可以利用DBCC来减小LOG文件BACKUP LOG [数据库名] WITH TRUNCATE_ONLYdbcc shrinkfile ([log文件的逻辑名称],1) 这个方法在MS SQL Server 2008 以及MS SQL Server 2008 R2中不再适用,会提示:TRUNCATE_ONLY is not a valid BACKUP option.

SQL Server创建链接服务器的存储过程示例分享

创建链接服务器.链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询.在使用 sp_addlinkedserver 创建链接 服务器后,可对该服务器运行分布式查询.如果链接服务器定义为 SQL Server 实例,则可执行远程存储过程. http://msdn.microsoft.com/zh-cn/library/ms190479(SQL.90).aspx EXECUTE sp_addlinkedserver @server='DB1', @srvproduct='',@provid