存储过程中调用c#写的dll_c#应用
2008-02-23 05:45:58来源:互联网 阅读 ()
最近一个项目中碰到一个转换FileTime的问题.时间是在C#中用DateTime.ToFileTime写入数据库中,这在存储过程中判断年和季度成了问题,怎么样才能把时间转换为正常的时间格式呢?Sql server中又没有FromFileTime对应的方法?其实很简单用C#写一个转换时间的Dll然后在存储过程中调用就能够了.
转换时间的类如下:
[Guid("729ba6af-3eff-4b75-b43b-d951a190dbe6")]
public class FileTimeConvert
{
public FileTimeConvert()
{
}
public string ConvertTime(long fileTime)
{
string retVal = string.Empty;
if (fileTime > 0)
{
DateTime dt = DateTime.FromFileTime(fileTime);
retVal = dt.ToString();
}
return retVal;
}
}
注意这个Guid我们在存储过程中引用要用到这个Guid.
为方便可能在多处需要调用,我们专门写一个存储过程
如下:
CREATE PROCEDURE spu_ConvertFileTimeToNormal
@ticks BIGINT,
@returnval varchar(40) output
AS
DECLARE @src varchar(255)
DECLARE @desc varchar(255)
DECLARE @object int
DECLARE @hr int
EXEC @hr = sp_OACreate {729ba6af-3eff-4b75-b43b-d951a190dbe6},@object OUT
IF @hr = 0 --假如创建对象成功
BEGIN
EXEC @hr = sp_OAMethod @object,ConvertTime,@returnval OUT,@ticks
print @returnval
print @hr
if(@hr <> 0)
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
END
ELSE
BEGIN
--print @hr
print Create Object ConvertTime failed
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
GO
这个时候我们还差最后一步注册DLL了
在.net 命令行下输入 regasm -codebase path
好了,现在我们就能够在其他存储过程中调用这个存储过程返回正常的时间了.
给个小例子:
EXEC spu_ConvertFileTimeToNormal @CreateTime,@NormalTime OUT
@CreateTime:FileTime格式
@NormalTime :正常的时间格式字符串(spu_ConvertFileTimeToNormal 存储过程返回值)
这个简单的小例子说明了我们怎么样在存储过程中调用DLL
是不是您解决问题又多了一个选择了呢?
http://ktgu.cnblogs.com/archive/2006/05/30/413352.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 如何让数据访问过程更透明_c#应用
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash