ADO.NET Provider for XML

Build 24.0.9062

INSERT 実行

INSERT ステートメントが実行されると、本製品 は、スキーマのPOST メソッドを実行し、HTTP 挿入リクエストを作成します。

XML へのInsert の実行

POST メソッドでは、Items in API Script の1つである_input アイテムに、挿入するカラムが含まれます。 例えば、次のステートメントを考えてみましょう。

INSERT INTO Persons
(Name, Id)
VALUES
('Maria Anders','7') 

_input アイテムの属性を使用して、HTTP 挿入リクエストでこれらのカラム値を設定できます。OData API では、これはHTTP POST です。OData API で先の挿入を行うためのPOST データは次のとおりです。

<entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
  <content type="application/xml">
    <m:properties>
      <d:Name m:type="Edm.String">Maria Anders</d:Name>
      <d:ID m:type="Edm.Int32">7</d:ID>
    </m:properties>
  </content>
</entry>
サンプルスキーマの対応するPOST メソッドでは、必須カラムが最初に検証され、それからPOST データを定義するために使用されます。カラムが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。

必要な属性が存在することを検証したら、POST データにカラムの値を設定できます。"data" 属性をPOST データに設定します。api:set キーワードのボディは、このように長い、もしくは複数行の値を設定する際に便利です。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、api:set を使用してメソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

<api:script method="POST">
    <api:set attr="method" value="POST"/>
    <api:validate attr="_input.Name" desc="Name and Id are required to insert." />
    <api:validate attr="_input.Id" desc="Name and Id are required to insert." />
    <api:set attr="data">
      <entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
        <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
        <content type="application/xml">
          <m:properties>
            <d:Name m:type="Edm.String">[_input.Name]</d:Name>
            <d:ID m:type="Edm.Int32">[_input.Id]</d:ID>
          </m:properties>
        </content>
      </entry>
    </api:set>
    <api:call op="xmlproviderGet"/>
  </api:script>
  
INSERT 構文はデータを返すことがあります。例えば、新しいレコードからの発行されたId です。挿入から返された値にアクセスしたい場合には、api:callキーワードの代わりにapi:push キーワードを使います。

INSERT ステートメントのコンポーネントへのアクセス

POST メソッドでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
INSERT INTO Account (account_name, account_type) VALUES ('Contoso','Company')
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062