0

さまざまな形式のファイルを受け入れるアプリケーションを作成しています。次に、各形式(csv、excel、xml)のコードを記述して変換し、SQLServerデータベースに入力します。これは問題ありませんが、私はSSISを調べていて、これが役立つかどうか疑問に思っていました。

ただし、主な質問は、これらのパッケージを自分のコード内で実行するにはどうすればよいですか?パラメータを渡すのは簡単ですか?このWebアプリを別のサーバーに移動した場合、そのサーバーにある他のコンポーネント(SQL Server 2012がインストールされている可能性があります)に依存しますか?それとも、Webアプリから参照できるDLLの一部ですか?

私が見るすべてのデモはSSISツールの使用に関するものですが、コードからパラメーターを使用してパッケージを呼び出すことがいかに難しいかに興味があります。

4

4 に答える 4

4

BIDS/SSDT のインストールには完全なクライアント SDK が含まれており、コードを介して SSIS パッケージを簡単に実行できます。

このMSDN の記事では、C# を介してパッケージを読み込んで実行する方法について詳しく説明していますが、実際のコードは次のようになります。

using Microsoft.SqlServer.Dts.Runtime;

   .
   .
   .

Application app = new Application();
Package pkg = app.LoadPackage(PKG_FILE_NAME, null);
DTSExecResult pkgResults = pkg.Execute();

Packageオブジェクトには、調べることができる多くのプロパティとメソッドがあります。特に、実行Parameters前にパラメーターを SSIS パッケージに渡すことができるコレクションがあります。

于 2013-03-06T16:41:39.453 に答える
1

C# または VB.NET を使用して SSIS パッケージをプログラムでビルドし、パッケージを実行できます。既存のパッケージをプログラムで読み込んで実行することもできます。ほとんどのパッケージは次のツールを使用して簡単にビルドできるため、この方法でパッケージをビルドする経験はほとんどありません。

詳細については、MSDNの記事Build Packages Programmaticallyを参照してください。

対象とする SSIS のバージョンによっては、これらの IDE を使用してパッケージをビルドする方が簡単だと思います。また、SQL Server インポートおよびエクスポート ウィザードを使用して初期パッケージを作成し、SSIS パッケージをローカル ディスクに保存して、後で必要に応じて変更することもできます。

SSIS Version        Development IDE                                 Visual Studio Shell
------------------- ----------------------------------------------- -------------------
SSIS 2005           Business Intelligence Development Studio (BIDS) Visual Studio 2005 
SSIS 2008 - 2008 R2 Business Intelligence Development Studio (BIDS) Visual Studio 2008 
SSIS 2012           SQL Server Data Tools (SSDT)                    Visual Studio 2010

SSIS パッケージを作成/ロードするには、コードで適切な SSIS 固有の DLL を参照する必要があります。

SQL Server Integration Servicesただし、パッケージを実行するにはライセンスが必要です。DLL だけを単純に参照することはできません。ライセンスは、SQL Server ライセンスを既にお持ちの場合、通常はその一部です。

コメントへの返信:

別のサーバーに SQL 2012 または 2008R2 を配置します。そのため、必要な DLL を Web サーバーに貼り付けて参照するだけです。正しい ?

パッケージはそのサーバーで実行されます。それらを実行するためにリモートで呼び出しているだけであり、Web/その他の形式の外部アプリケーション内のコードで適切な DLL を参照する必要があります。通常、 SQL Server Agent Jobの下のデータベース サーバーでパッケージを実行するようにスケジュールします。それがあなたのためのオプションであるならば、あなたはそれを試すことができます.

于 2013-03-06T16:48:03.133 に答える
1

EzAPI と呼ばれる非常に優れたライブラリがあり、独自のパッケージを生成して C# 内から呼び出すことができます。これにより、SSIS をその場で生成して実行するための柔軟性が大幅に向上します。

http://sqlsrvintegrationsrv.codeplex.com/releases/view/21238

これらのメソッドのいくつかをテストするために、このプロジェクト内にいくつかのコンソール アプリを作成しました。サンプルが役立つ場合があります。

https://github.com/thevinnie/SyncDatabases

「BuildingAPackage」と「BuildALookupPackage」を見てください

于 2013-03-06T16:42:17.430 に答える
0

パッケージ パラメータは、外部アプリケーションからの読み取り専用です。それらを変数として渡す必要があります(私はこれを行いました)。パラメーターを持つ既存のパッケージを扱っている場合は、変数からパラメーターを設定するスクリプト タスクを作成することを検討してください (私はまだ行っていません)。

于 2015-04-15T17:01:10.020 に答える