国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临漳县| 南雄市| 肇州县| 洱源县| 全南县| 巢湖市| 东乌| 旬阳县| 宜昌市| 荆门市| 四川省| 光山县| 清镇市| 嘉峪关市| 昌江| 乐至县| 扎兰屯市| 西城区| 宿迁市| 安龙县| 丰县| 韶山市| 长子县| 阆中市| 达拉特旗| 怀远县| 平顶山市| 兴仁县| 南充市| 松滋市| 建湖县| 邯郸市| 广南县| 新安县| 泰州市| 山丹县| 启东市| 霞浦县| 鱼台县| 西青区| 肇州县|