<x:updateRow>

x:updateRow アクションは、x:select アクションを使用して作り出された結果セットの中の行に基づいたデータベースを更新するために使用されるものです。 実行される実際のデータベース操作は、結果セットの中の行が元々データベースから取り出されたか、 またはこの行が x:insert アクションによって結果セットに追加された空の行であるかに応じて、 更新または挿入となる可能性があります。

x:updateRow アクションには、x:select アクションの中で参照される同じ接続情報が使用されます。

デフォルトにより、このアクションでは現在行が更新されます。ただし、 その他の行を更新する場合は以下の行属性の説明を参照してください。 更新する行が現在行でない場合は、現在行の変更が最初にデータベースに適用されます。 アクションの終了時には、更新された行は現在行となります。

構文

<x:updateRow	 	name = "target bean name"
 				row = "rowNumber">
 	<x:column 		colName = "name"
 				index = "number"
 				value = "value"
 				nullToken = "string" />
 </x:updateRow>
  OR:
  <x:updateRow	
			 	name = "target bean name"
 				row = "rowNumber" />  

x:updateRow アクションには以下の属性があります。

name
更新する結果セットを含む Select の名前。値には大/小文字の区別があり、値はスコープ内にある Select アクションと一致させる必要があります。 この name 属性が指定されている x:repeat の本体の内側にアクションがない (直接にせよ間接にせよ) 場合は、この属性が必須となります。 このような場合、この name 属性は、デフォルトにより最も近くの収容 x:repeat の中に指定されているものと同じ値に設定されます。
row
更新される行の番号。(値の 1 は 1 行目を指します。) この属性はオプションです。指定しなければ、デフォルト値は、 このアクションが over="rows" の指定されている x:repeat の本体の内部にあるかどうかに応じて決まります。 この場合、その x:repeat の索引変数の値が使用されます。 指定している場合は、結果セットの現在行の索引が使用されます。

x:updateRow アクションは、その本体内に以下のタグをもつことができます。

<x:column>
桁に設定される値を指定します。

この例では、要求パラメーターで渡された値をもつ結果セットの現在行が更新されます。

<x:updateRow name="select1">
	<x:column colName="EMPNO"
		value='<%= request.getParameter("empno") %>' />
	<x:column colName="EMPNAME"
		value='<%= request.getParameter("empname") %>' />
	<x:column colName="COMMISSION"
		value='<%= request.getParameter("empcomm") %>' />
</x:updateRow>

この例では、要求パラメーターで渡された値をもつ結果セットの各行が更新されます。

<x:repeat name="select1" over="rows" index="rowNum">
<x:updateRow>
		<x:column colName="EMPNO"
		   value='<%= request.getParameter("empno"+rowNum) %>' />
		<x:column colName="EMPNAME"
		   value='<%= request.getParameter("empname"+rowNum) %>' />
		<x:column colName="COMMISSION"
		   value='<%= request.getParameter("empcomm"+rowNum) %>' />
</x:updateRow>
</x:repeat>

フィードバック