次の方法で共有


SQL アダプターを使用して SQL 操作のメタデータを参照、検索、取得する

このセクションでは、アダプター サービス BizTalk プロジェクト アドイン、アダプター メタデータの追加ウィザード、およびアダプター サービス参照の追加 Visual Studio プラグインを使用する方法について説明します。 これらの Visual Studio コンポーネントを使用すると、次のことができます。

  • メタデータを取得する操作を参照します。

  • メタデータを取得する操作を検索します。

  • アダプター サービス アドインを使用するときに、選択した操作とポート バインド構成ファイルのメッセージ スキーマをBizTalk Server プロジェクトに追加します。

  • アダプター サービス参照の追加プラグインを使用する場合は、選択した操作用の WCF クライアント クラスまたは WCF サービス コントラクト (インターフェイス) と、BizTalk 以外のプログラミング プロジェクトに構成ファイル (app.config) を追加します。

Note

アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、およびアダプター サービス参照の追加プラグインは、操作を参照および検索するときに基本的に同じインターフェイスを提供するため、3 つのコンポーネントはすべて同じトピックで説明します。

前提条件

ターゲット操作のメタデータを参照、検索、または取得する前に、SQL Serverに接続する必要があります。 アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、またはアダプター サービス参照の追加プラグインを使用する場合にSQL Serverに接続する方法については、「アダプター サービスアドインを使用して Visual Studio でSQL Serverに接続する」を参照してください。

操作の参照

アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、またはアダプター サービス参照の追加プラグインを使用して、SQL アダプターを使用してSQL Serverに対して実行できる送信および受信操作を参照できます。

送信操作

SQL アダプターを使用すると、クライアントは次の送信操作を実行できます。

  • テーブルとビューに対する挿入、選択、更新、および削除の各操作。

  • テーブルとビュー column_name>操作を設定<します。 この操作は、varchar(max)、nvarchar(max)、または varbinary(max) の列を持つテーブルで公開されます。 このような操作により、大きなオブジェクトのストリーミングが可能になります。

  • ストアド プロシージャ。操作として弱く、厳密に型指定されています。

  • スカラー関数とテーブル値関数を操作として使用します。

    アダプターは、ルート レベルで ExecuteReaderExecuteScalarExecuteNonQuery などの一般的な送信操作も公開します。

受信操作

SQL アダプターを使用すると、クライアントは次の受信操作を実行できます。

  • SQL Serverからポーリング ベースのデータ変更メッセージを受信するポーリング操作。 この操作で受信したメッセージは厳密に型指定されません。

  • SQL Serverからポーリング ベースのデータ変更メッセージを受信する TypedPolling 操作。 この操作で受信したメッセージは厳密に型指定されます。

  • SQL Serverからクエリ通知を受信する通知操作。

Note

アダプターでは、SELECT ステートメントと FOR XML 句を含むストアド プロシージャを使用して、SQL Server データベースでポーリングを有効にする XmlPolling 受信操作もサポートされています。 ただし、アダプターは、これに対する特定の受信操作を公開しません。 XmlPolling の詳細については、「BIZTALK SERVERを使用して SQL から FOR XML 句を使用して SELECT ステートメントを使用してポーリング メッセージを受信する」を参照してください。

これらの操作の詳細については、「 アダプターを使用して SAP システムに接続する」を参照してください。

Note

アダプター サービス アドインの使用またはアダプター サービス参照の追加プラグインを使用すると、Windows インターフェイスを使用してカテゴリと操作ノードを参照できます。

メタデータの参照の詳細については、「SQL アダプターを使用して Visual Studio でSQL Server操作のメタデータを取得する」を参照してください。

SQL Serverの送信操作を参照するには
  1. アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、またはアダプター サービス参照の追加プラグインを使用して、SQL Serverに接続します。 手順については、「アダプター サービス アドインを使用して Visual Studio でSQL Serverに接続する」を参照してください。

  2. [ コントラクトの種類の選択 ] の一覧で、送信操作の場合は [ クライアント (送信操作)] を選択します。

  3. [カテゴリの選択] ボックスには、接続先のSQL Server データベースで使用できる成果物が一覧表示されます。 成果物をクリックすると、その成果物で使用可能な操作が [ 利用可能なカテゴリと操作 ] ボックスに表示されます。

    ヒント

    成果物の名前を入力すると、ツリー内の "イミディエイト" カテゴリ ノードまたはサブカテゴリ ノードに直接移動できます。一方、フォーカスは [ カテゴリの選択 ] ボックスのツリー ビューにあります。 たとえば、 Employee テーブル ノードに移動するには、[ テーブル ] ノードにフォーカスを置き、「」と入力 Employeeします。

    次の図は、アダプター サービス アドインの使用を示しています。 ルート ノード (/) が選択され、ルート ノードの下で使用できる一般的なカテゴリ ノードが [ 利用可能なカテゴリと操作 ] ボックスに一覧表示されます。

    3eef7b99-da8e-4b98-8b14-8e48fd7b3801ルート レベル

    Note

    ExecuteReader、ExecuteScalar、ExecuteNonQuery などの標準のSQL Server操作もルート レベルで使用できます。 これらの操作の詳細については、「 ExecuteNonQuery、ExecuteReader、ExecuteScalar 操作のサポート」を参照してください。

  4. SQL Server データベースで使用できるプロシージャを表示するには、[プロシージャ] ノードをクリックします。 次の図では、[カテゴリの選択] ボックスで [プロシージャ] ノードが選択され、対応するプロシージャが [利用可能なカテゴリと操作] ボックスに一覧表示されます。

    SQL Server の手順を参照する

    Note

    [プロシージャ ] ノードの 下に一覧表示されているのと同じプロシージャのセットは、[ 厳密に型指定されたプロシージャ] ノードでも使用できます。 違いは、スキーマの生成方法にあります。 プロシージャ ノードの下の プロシージャ の場合、スキーマは弱く型指定されます。 ただし、 厳密に型指定されたプロシージャ ノードの下のプロシージャ の場合、スキーマは厳密に型指定されます。 厳密に型指定されたスキーマは、BizTalk プロジェクトの作成時にスキーマをデザイン時に使用できるため、BizTalk マッパーを使用して、ある操作のスキーマを別の操作にマップする場合に便利です。 弱く型指定されたプロシージャの場合、プロシージャのスキーマは、応答メッセージの一部として実行時に受信されます。

  5. SQL Server データベース内のテーブルを表示するには、[テーブル] ノードをクリックします。 または、[ テーブル] ノードを展開します。

  6. テーブルでサポートされている操作を表示するには、テーブル名をクリックします。

    次の図は、[ カテゴリの選択 ] ボックスのテーブルの一覧を示しています。 [ 利用可能なカテゴリと操作 ] ボックスには、選択したテーブルでサポートされている操作が一覧表示されます。

    SQL Server データベース のテーブルを参照する

    Note

    SQL Server テーブルに varchar(max)、nvarchar(max)、varbinary(max) 型の列が含まれている場合、アダプターはその列のデータを更新するための特定の操作も公開します。 この操作の名前は Set<column_name> です。 たとえば、テーブルに varchar(MAX) 型の列 "Job_Description" がある場合、操作の名前は "SetJob_Description" になります。

  7. SQL Server データベースのビューを表示するには、[ビュー] ノードをクリックします。 または、[ ビュー ] ノードを展開します。

  8. ビューでサポートされている操作を表示するには、ビュー名をクリックします。

    次の図は、[ カテゴリの選択 ] ボックスのビューの一覧を示しています。 [ 利用可能なカテゴリと操作 ] ボックスには、選択したビューでサポートされている操作が一覧表示されます。

    SQL Server データベース のビューを参照する

    Note

    ビューに varchar(max)、nvarchar(max)、varbinary(max) 型の列が含まれている場合、アダプターはその列のデータを更新するための特定の操作も公開します。 この操作の名前は Set<column_name> です。 たとえば、テーブルに varchar(max) 型の列 "Job_Description" がある場合、操作の名前は "SetJob_Description" になります。

  9. SQL Server データベースで定義されているスカラー関数の一覧を [使用可能なカテゴリと操作] ボックスに表示するには、[スカラー関数] ノードをクリックします。

    次の図では、[カテゴリの選択] ボックスで [スカラー関数] ノードが選択され、対応する関数が [利用可能なカテゴリと操作] ボックスに一覧表示されています。

    78b9f720-2cb2-44a8-b8cc-49e4fb608a1fSQL Server する

  10. SQL Server データベースで定義されているテーブル値関数の一覧を [使用可能なカテゴリと操作] ボックスに表示するには、[テーブル値関数] ノードをクリックします。

    次の図では、[カテゴリの選択] ボックスで [テーブル値関数] ノードが選択され、対応する関数が [利用可能なカテゴリと操作] ボックスに一覧表示されます。

    b007059f-280e-40d7-9553-eca4216296f4SQL Server のする

SQL Serverの受信操作を参照するには
  1. アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、またはアダプター サービス参照の追加プラグインを使用して、SQL Serverに接続します。 手順については、「アダプター サービス アドインを使用して Visual Studio でSQL Serverに接続する」を参照してください。

  2. [ Select contract type ]\(コントラクトの種類の選択\) の一覧で、受信操作の場合は [ サービス (受信操作)] を選択します。

  3. SQL アダプターでサポートされているすべての受信操作は、ルート ノードで使用できます。 ルート ノード (/) をクリックして、使用可能な受信操作を表示します。

    133732c0-ca8f-4e57-8a70-ba4fb561a37bアダプター

操作の検索

アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、またはアダプター サービス参照の追加プラグインを使用して、SQL Server データベース内の特定の成果物を検索できます。 メタデータSQL Server検索する場合、SQL アダプターは次の処理を行います。

  • 検索式でワイルドカード文字とエスケープ文字をサポートします。

  • 検索操作が実行されるノードのすぐ下で検索を有効にします。 たとえば、テーブルを検索するには、\Table で検索する必要があります。 複数レベルの検索はサポートされていません。

    次の表に、アーティファクトの検索に使用できる特殊文字と、SQL アダプターによるその解釈を示します。

特殊文字 解釈
_ (アンダースコア) 1 文字に一致します "A_" は AB、AC、AD と一致します。
% 0 個以上の文字を一致と見なします。 "A%" は A、AB、AC と一致します。
[ ] - % と _ の特別な意味をエスケープします
- 存在する範囲または文字のセットを指定します
- %[%]% は、 % 記号を含むすべての名前と一致します。
- [a-f] は、'a' と 'f' の間に文字が含まれるすべての名前と一致します。
- [abc] は、文字 'a'、'b'、および 'c' を持つすべての名前と一致します。
[^] 指定しない範囲または一連の文字を指定します - [^a-f] は、'a' と 'f' の間に文字が含まれていないすべての名前と一致します。
- [^abc] は、文字 'a'、'b'、および 'c' を持たないすべての名前と一致します。

Note

エスケープ文字は、ワイルドカード文字の前に配置される文字で、ワイルドカードはワイルドカードとしてではなく、通常の文字として解釈する必要があることを示します。

詳細については、「SQL アダプターを使用して Visual Studio でSQL Server操作のメタデータを取得する」を参照してください。

アダプター サービス アドインを使用してSQL Serverでメタデータを検索するには、次の手順を実行します。

SQL Serverでメタデータを検索するには

  1. アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、またはアダプター サービス参照の追加プラグインを使用して、SQL Serverに接続します。 手順については、「アダプター サービス アドインを使用して Visual Studio でSQL Serverに接続する」を参照してください。

  2. [ コントラクトの種類の選択 ] ボックスの一覧から、受信操作と送信操作のどちらを検索しているかに基づいて、コントラクトの種類を選択します。

  3. [ カテゴリの選択 ] ボックスで、特定の成果物を検索するカテゴリ ノードをクリックします。 たとえば、テーブルを検索するには、[ テーブル] ノード をクリックします。

  4. [ カテゴリで検索 ] ボックスに、特定の成果物を検索する検索式を入力します。 たとえば、名前に "Customer" が含まれるテーブルを検索するには、「」と入力します %Customer%

    Note

    検索文字列では大文字と小文字が区別されます。

  5. 検索を開始するには、右矢印アイコンが表示されたボタンをクリックします。 検索が完了すると、[ 利用可能なカテゴリと操作 ] ボックスに、検索条件を満たす成果物が一覧表示されます。

    次の図は、名前に "Customer" が含まれるSQL Serverテーブルを示しています。

    62c24ed3-f4e5-47de-8e8d-35af96e6c5ecSQL Server する

BizTalk プロジェクトのスキーマの生成

アダプター サービス アドインまたはアダプター メタデータの追加ウィザードを使用して、選択したSQL Server成果物のスキーマを生成できます。 呼び出す成果物を参照して検索したら、それらの成果物のスキーマを生成し、スキーマに準拠してメッセージを送信してSQL Serverできます。

Note

カテゴリ ノードを選択すると、そのカテゴリのサブツリー内のすべての操作を返すことができます。たとえば、テーブル全体を選択したり (テーブル内のすべての操作のスキーマを生成する場合)、テーブルに対する特定の操作 (挿入や削除など) を選択して、テーブルに対する操作のみのスキーマを生成したりできます。 ノードの詳細については、「 メタデータ ノード ID」を参照してください。

SQL Server成果物のスキーマを生成するには

  1. アダプター サービス アドインまたはアダプター メタデータの追加ウィザードを使用して、SQL Serverに接続します。 手順については、「アダプター サービス アドインを使用して Visual Studio でSQL Serverに接続する」を参照してください。

    重要

    BizTalk Serverを使用して操作を実行するためのスキーマを生成するには、EnableBizTalkCompatibilityMode バインド プロパティを True に設定する必要があります。 SQL Server データベースへの接続を確立するときに、このバインド プロパティを設定する必要があります。

  2. [ コントラクトの種類の選択 ] ボックスの一覧から、受信操作と送信操作のどちらのスキーマを生成しているかに基づいて、コントラクトの種類を選択します。

  3. メタデータを生成するカテゴリ ノードをクリックします。 たとえば、テーブルのメタデータを生成する場合は、[ テーブル] をクリックします。

  4. カテゴリ ノードを展開し、メタデータを生成するノード内の特定の項目を選択します。 たとえば、"CustomerTable" テーブルに対する操作のメタデータを生成するには、[ テーブル ] ノードを展開し、[ CustomerTable] をクリックします。

  5. [利用可能なカテゴリと操作] ボックスで、SQL Serverに対して実行する操作を選択し、[追加] をクリックします。 選択した操作が [追加された カテゴリと操作 ] ボックスに一覧表示されます。 たとえば、"CustomerTable" テーブルに対して挿入操作と選択操作を実行するには、操作名をクリックし、[ 追加] をクリックします。

    次の図は、選択した操作を一覧表示するアダプター サービス アドインの使用を示しています。

    a6a95291-f6ed-46d1-bacc-2dfc27638117SQL Server する

    複数の操作のスキーマを生成する場合は、BizTalk プロジェクトのコンパイルでエラーが発生する可能性のある、これらのスキーマの中に重複する要素定義が存在する可能性があります。 たとえば、操作 "Op1" のスキーマを生成するシナリオを考えてみましょう。 "Op1" のスキーマには、データ型 "CT1" のパラメーターが含まれています。 "Op1" のスキーマを生成した後、アダプター サービス アドインを使用して再度開き、別の操作 "Op2" のスキーマを生成します。 "Op2" にはデータ型 "CT1" のパラメーターも含まれているとします。 アダプター サービス アドインの使用を終了してプロジェクトをコンパイルすると、複合データ型 "CT1" が異なる XSD ファイルで 2 回定義されているため、コンパイル エラーが発生します。 このような場合は、次のことをお勧めします。

    • アダプター サービス アドインの 1 回の実行ですべての操作のスキーマを生成します。 これにより、アダプター サービス アドインを使用して、複合データ型 "CT1" の定義が 1 つだけ生成されるようになります。

    • アダプター サービス アドインの実行ごとに複数の操作のスキーマを生成する場合は、[一意のスキーマの種類を生成するチェック] ボックスをオンにして、生成された XSD ファイルに複合データ型 "CT1" の一意の名前空間が含まれるようにします。

  6. [OK] をクリックします。 スキーマ ファイルは、BizTalk プロジェクトと同じ場所に拡張子 .xsd と共に保存されます。

    Note

    アダプター サービス アドインを使用してSQL Server成果物のメタデータを生成する場合、既定では、ファイルは特定の名前付け規則で作成されます。 生成された WSDL には、XSD ファイルに割り当てる名前を含む fileNameHint 注釈タグが含まれています。 たとえば、テーブル操作のスキーマ ファイルのファイル名ヒントは、TableOperation という規則に従います。<スキーマ>。<tablename>。 生成された XSD ファイルの名前をカスタマイズする場合は、[ ファイル名のプレフィックス ] ボックスにプレフィックスを指定できます。 最後に、XSD ファイルの名前は、ファイル名プレフィックス + fileNameHint + 一意の整数 (ファイル名が一意であることを確認するために必要な場合) として到着します。

    Note

    また、アダプター サービス アドインを使用すると、操作のスキーマの生成時に指定したバインド プロパティと、操作を呼び出す SOAP アクションを含むバインド ファイル (XML ファイル) も作成されます。 このバインド ファイルは、BizTalk Server管理コンソールにインポートして、接続 URI、バインド プロパティ、および SOAP アクション セットを使用して、WCF-Custom ポートまたは BizTalk SQL アダプター ポートを作成できます。 詳細については、「 SQL アダプターを使用するようにポート バインド ファイルを使用して物理ポート バインドを構成する」を参照してください

    SQL Server成果物のメタデータが正常に生成されました。 メタデータを使用して、特定の操作を実行するためにメッセージをSQL Serverに送信できます。 これらの操作の実行方法の詳細については、「 SQL アダプターを使用して BizTalk アプリケーションを開発 する」を参照してください。

アダプター サービス参照の追加プラグインを使用した WCF クライアントまたは WCF サービス コントラクトの生成

アダプター サービス参照の追加プラグインを使用して、送信操作用の WCF クライアント コードまたは受信操作用の WCF サービス コードを生成できます。

SQL Server操作用に WCF クライアント クラスまたはサービス コントラクトを生成するには

  1. [アダプター サービス参照プラグインの追加] の [コントラクトの 種類の選択 ] ドロップダウン リストから、受信操作と送信操作のどちらを実行するかに基づいてコントラクトの種類を選択します。

  2. カテゴリ (データベース テーブルなど) を参照または検索するか、WCF クライアント (または WCF サービス コントラクト) を生成する特定の操作を検索します。
    たとえば、Employee テーブルで操作を参照するには、[カテゴリの選択] ボックス 次の操作を行います。

    1. ルート ノード (/) を展開して、SQL Server データベースに対して操作が表示されるカテゴリを確認します。

    2. ルート ノードの下にある [ テーブル ] ノードを展開して、使用可能なテーブルを表示します。

  3. [ 従業員 テーブル] ノードをクリックし、[ 利用可能なカテゴリと操作 ] ボックスで、WCF クライアント (または WCF サービス コントラクト) を生成する操作またはカテゴリを選択し、[ 追加] をクリックします。 選択した操作が [追加された カテゴリと操作 ] ボックスに一覧表示されます。

    次の図は、Employee テーブルの挿入操作と選択操作が選択されたアダプター サービス参照プラグインを示しています。

    WCF クライアントまたはサービス コントラクトを生成する

    重要

    選択した送信操作 (またはカテゴリ) によっては、複数の WCF クライアント クラスが生成される場合があります。 詳細については、「SQL Server Artifacts の WCF クライアントまたは WCF サービス コントラクトを生成する」を参照してください。

  4. ほとんどのシナリオでは、既定のシリアル化オプションで十分です。ただし、必要に応じて、生成されるコードと使用されるシリアライザーの種類に関するいくつかの側面を制御できます。 これらのオプションを設定するには:

    1. [ 詳細オプション] を クリックして、[ 詳細オプション] ボックスを 開きます。

    2. [ 詳細オプション] ボックスの [ 生成されたプロキシのオプションの選択] で、目的のオプションを選択します。 たとえば、WCF クライアントに対して非同期メソッドを生成するか、構成ファイルの生成を無効にするかを選択できます。

    3. [ シリアライザー ] で、使用するシリアライザーを選択します。

      次の図は、既定の選択項目を含む [詳細オプション] ボックスを示しています (シリアライザーでは [自動 ] が選択されており、その他のオプションは選択されていません)。

      [詳細オプション] ボックスの既定の設定

      [ 詳細オプション] ボックスで構成できるオプションは、ServiceModel メタデータ ユーティリティ ツール (svcutil.exe) を使用するときに使用できるオプションの一部と同じです。 これらのオプションの詳細については、「 ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe)」を参照してください。

  5. [OK] をクリックします。 アダプター サービス参照の追加プラグインは、プロジェクト ディレクトリで選択した操作とカテゴリの WCF クライアント クラス (または WCF サービス インターフェイス) とヘルパー コードを保存します。 既定では、構成ファイルも保存されます。 受信操作と送信操作では、若干異なるファイルが生成されます。詳細については、「 Generate a WCF Client or WCF Service Contract for SQL Server Artifacts」を参照してください。

    [ 利用可能なカテゴリと操作 ] ボックスに一覧表示されている任意のノードを選択できます。 カテゴリ ノードを選択すると、そのノードとそのサブノードで使用できるすべての操作が選択されます。 たとえば、Employee テーブルに対して表示されるすべての操作に対して WCF クライアントを生成するには、Employee ノードを選択できます。

参照

SQL アダプターを使用して Visual Studio でSQL Server操作のメタデータを取得する