2011-09-12 6 views
0

C#クライアントアプリケーションからSSISパッケージを実行します。 パッケージは、ユーザーのローカルドライブまたはネットワーク共有に存在するユーザー提供ファイルからデータをインポートする必要があります。 SSISをユーザーマシンにインストールする必要があるため、ローカルコンピュータでSSISパッケージをプログラム的に実行する必要はありません。 私が読んだところでは、より良いアプローチは、SSISパッケージをリモートコンピュータ上でプログラム的に実行することです(SQL Server上で実行され、ssisパッケージを起動するWebサービス経由で)。 問題は、リモートパッケージがリモートサーバーコンテキスト(SQLサーバーマシン)で実行され、ユーザー提供のパスにアクセスできないことです。ユーザーとSQL Serverマシンの両方にアクセス可能なネットワーク上の場所を作成することを伴わない、その問題の解決策はありますか?C#クライアントアプリケーションから実行されるSSISパッケージにデータ(ユーザーのローカルドライブ上にある)を渡す方法は?

答えて

0

パッケージを実行する前に、C#クライアントアプリケーションでファイルをサーバーにFTP転送させます。または、クライアント・アプリケーションにデータを最初にデータベースのステージング表に挿入させることもできます。または、Webサービスでデータを受け入れ、ステージング領域に書き込むことができます。

SSISには、ファイルを入力としてパッケージにストリーミングする機能が含まれていないため、標準的な方法でデータにアクセスする必要があります。

+0

ステージングテーブルに移動します。問題は、SSISがデータを利用できるようにする方法です。あなたは、私はデータを受け入れるためにWebサービスを使用することができると述べた。 (SQLサーバーマシンから実行され、クライアントアプリケーションから呼び出された)Webサービスを使用して、SQLサーバーマシン(またはSQLサーバーマシンに見える共有)のローカルドライブにデータをコピーすることは可能でしょうか?それは問題を解決するだろう。 – PeterNJ

+0

はい、その時点で、ADO.NETを使用してSQL Serverに直接データを書き込むこともできます(BulkCopy APIはこれに対して非常に高速です)。 SQL Serverに入ったら、SSISを使用して変換することができます。 –

関連する問題