INSERT 実行
INSERT ステートメントが実行されると、connector は、スキーマのPOST メソッドを実行し、HTTP 挿入リクエストを作成します。
JSON への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 データは次のとおりです。
{
"@odata.type": "#ODataDemo.Person",
"Name": "Maria Anders",
"ID": 7
}
サンプルスキーマの対応するPOST メソッドでは、必須カラムが最初に検証され、それからPOST データを定義するために使用されます。カラムが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。
必要な属性が存在することを検証したら、POST データにカラムの値を設定できます。データ属性を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">
{
"@odata.type": "#ODataDemo.Person",
"Name": "[_input.Name]",
"ID": [_input.Id]
}
</api:set>
<api:call op="jsonproviderGet"/>
</api:script>
INSERT 構文はデータを返すことがあります。例えば、新しいレコードからの発行されたId です。挿入から返された値にアクセスしたい場合には、api:callキーワードの代わりにapi:push キーワードを使います。
INSERT ステートメントのコンポーネントへのアクセス
POST メソッドでは、_query アイテムに次の属性が含まれます。
query | 次のステートメントのような、SQL ステートメント。
INSERT INTO Account (account_name, account_type) VALUES ('Contoso','Company') |
table | SQL ステートメント内のテーブル。例えば、先のクエリのAccount です。 |
キーワードの参照
このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。