国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

存儲過程中調用C#寫的DLL

2019-11-18 17:11:35
字體:
來源:轉載
供稿:網友

最近一個項目中遇到一個轉換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.VEVb.com/archive/2006/05/30/413352.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澜沧| 绥化市| 沙田区| 铁岭县| 台前县| 犍为县| 云和县| 罗甸县| 霞浦县| 通江县| 牙克石市| 永康市| 宝应县| 淮安市| 莆田市| 长春市| 平谷区| 怀安县| 渭南市| 姜堰市| 石狮市| 喜德县| 东港市| 德江县| 盘山县| 涿鹿县| 扎鲁特旗| 新和县| 克拉玛依市| 阿鲁科尔沁旗| 岱山县| 上犹县| 新宁县| 东兴市| 延津县| 买车| 乌苏市| 乐陵市| 芒康县| 赤峰市| 文成县|