<x:modify>

x:modify 動作用來在關聯式資料庫中執行 insert、update 或 delete 陳述式。(您也可以執行其他 SQL 陳述式,但如果它們傳回結果集的話,您就無法存取它。)

使用這個動作會建立一個 DBModify Bean,您可以利用 id 屬性指定其名稱的變數來存取這個 Bean。

JSP 動作可利用 DBModify Bean 的基本功能。如果 SQL 陳述式有參數的話,您可以利用 x:getParameterx:parameter 動作來存取它們。

DBModify Bean 的所有方法都可以利用 Scriptlet 來執行,且它的所有內容都可以利用標準 jsp:getPropertyjsp:setProperty 動作來存取。

語法

<x:modify 	id = "name"
		scope = "page|request"	
		connectionSpec = "connectionSpec_id"
		connectionSpecRef = "connectionSpecRef"	
		timeOut = "seconds"
		nullToken = "string"
		trace = "true|false" >
	<x:sql>
	</x:sql>	
	<x:parameter	
			parmName = "name"
			position = "number"
		type = "sqltype"
		mode = "in|out|inout"
		value = "parmValue" />
	
</x:modify>

x:modify 動作有下列屬性:

id
用來在頁面名稱空間中識別 DBModify Bean 及其 Scripting 變數名稱的名稱。指定的名稱會區分大小寫,且必須符合現行 Scripting 語言變數命名慣例。

參照 DBModify Bean 的一個原因,是利用 jsp:getProperty 動作來取得其 updateCount 內容的更新計數。

scope
這是物件的定義範圍。 預設值是 page。
connectionSpec
這是 x:dataSourceSpecx:driverManagerSpec 動作的 ID。這個值會區分大小寫,且必須符合在範圍內的 connectionSpec 動作。

所參照的動作會提供建立資料庫連線所需要的資訊。 如果動作是發生在 x:batch 動作的主體內,請略過這個屬性,這時會使用 x:batch 動作中所識別的 connectionSpec 動作。如果您在兩個位置中指定它,且其值不符,就會出現錯誤旗標。

connectionSpecRef
這是一個指向 DBConnectionSpec 物件的參照,用來取得建立連線所需要的資訊。

您可以指定 connectionSpec 或 connectionSpecRef,但不能同時指定這兩者。

timeOut
這是執行陳述式時所允許的秒數上限。預設值是 0,表示沒有上限。
nullToken
指定要用來代表資料庫空值的字串值,會區分大小寫。 這個屬性是選用的。 它會作為在這個 Modify 中取得或設定參數值的任何動作之相同屬性的預設值。 如果兩個位置都略過屬性的話,預設值就是 &empty。(&empty 是一個類似於 HTML 字元實體的特殊值,在這個屬性中,被識別為代表空字串。) 請參閱空值,以取得空值表示法的詳細資料。
trace
這是指是否要啟用資料庫動作的追蹤。 預設值是 False。

x:modify 動作的主體中可以有下列標示:

<x:sql>
這指定要執行的 SQL 陳述式。
<x:parameter>
這指定 SQL 陳述式中之參數的值和 Meta 資料。 在 x:parameter 標示和 SQL 陳述式各參數之間,必須有一對一的關係。
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.