程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#調用存儲過程(帶返回值)和SQL Server DTS的方法(3)

C#調用存儲過程(帶返回值)和SQL Server DTS的方法(3)

編輯:關於C語言

第二部分 C#調用 SQL Server 的DTS

目前知道有兩種比較適用的方法:

(1).調用DTSRun命令來跑DTS.此種方法調用到了Master..xp_cmdshell擴展存儲過程,故需要將調用的用戶開通能訪問此擴展存儲過程的權限.

private void TestRunDTS()
    {
      string constr = "Data Source=localhost;initial catalog=master;user id=sa;passWord='';connect timeout=3000";
      SqlConnection conn = new SqlConnection(constr);
      conn.Open();
      SqlCommand cmd = new SqlCommand();
      cmd.Connection = conn;
      cmd.CommandText = "exec master..xp_cmdshell 'DTSRun /~Z0x8E9EF55158ABA56C3C3346137F1F7B7B090F1F61D54D3981CFA1DB0E8B50C4E0D416AF2F746FA482B5E3C2AABA52D4838DAA496938F1E61155CBB055FF4082181E6BE53F08A47D7E6A82E6B77E3F83FCBAAD1B'";
      try
      {
        cmd.ExecuteNonQuery();
      }
      finally
      {
        conn.Close();
      }
    }

注意看上面標紅色的部分,exec是來報告存儲過程的,xp_cmdshell 及後面的一長串代碼就是存儲過程及參數.dtsrun其實是DOS下的命令.後面跟的是DTS Package的ID.這個可以將DTS排成排程然後在屬性中查看到.

(2)第二種方法就要用到Microsoft提供的一個COM類.

直接提供下載吧:Microsoft.SQLServer.DTSPkg80.dll

用的是LoadFromSQLServer()方法

private void TestDTS()
{
  Package2Class package = new Package2Class();
      object pVarPersistStgOfHost = null;
      package.LoadFromSQLServer("localhost", "sa", "",DTSSQLServerStorageFlags.DTSSQLStgFlag_DefaulT
        ,null,null,null,"DTSTest", ref pVarPersistStgOfHost);
      package.Execute();
      package.UnInitialize();
      package = null;
}

參數說明:LoadFromSQLServer參數分別是:ServerName,userID,password,DTSSQLServerStorageFlags,PackagePassWord,PackageGuid,PackageVersionGuid,PackageName

第三部分:SQL Server 存儲過程中調用DTS

DECLARE @object int

DECLARE @hr int

DECLARE @src varchar(255), @desc varchar(255)

--生成對象

print 'start to create DTS.Pachage'
 EXEC  @hr  =  sp_OACreate  'DTS.Package',  @object  OUTPUT
 if  @hr  <>  0
 BEGIN
 print 'error create DTS.Package'
 EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
 SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
  RETURN
 END
 print 'create DTS.Pachage successful'

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved