在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转换时间的类如下: [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 是不是你解决问题又多了一个选择了呢? |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论