• λ我爱Aspx >> C#.Net >> 存储过程中调用C#写的DLL_C#应用
  • 存储过程中调用C#写的DLL_C#应用

  • :aspxer  Դ:internet  :2007-4-28 23:44:49  ؼ:c#
  • 最近一个项目中遇到一个转换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'

    Ҷƪл˵?
  • һƪ[SQLServer][DTS][存储过程]将DTS包文件加载到服务器上_数据库技巧
    һƪ在Access中模拟sql server存储过程翻页_数据库技巧