dbNonQuery

Version 24.2.9039


dbNonQuery


对数据库执行非查询。 仅支持action SQL 语句。 不支持可返回结果的 SQL 语句。

必需的参数

  • driver: 跨平台版本 中的 JDBC 驱动程序类名称 或 .NET 版本
  • conn:连接字符串或数据库 URL。
  • query: SQL 查询字符串。 仅支持以下 SQL 语句:(CREATE、ALTER、DROP、INSERT、UPSERT、UPDATE、DELETE)。

可选的参数

  • commandtimeout:操作完成的 CommandTimeout,以秒为单位。 零 (0) 表示没有超时。 默认值为60
  • paramname#:参数名称。
  • paramvalue#:参数值。
  • paramtype#:参数类型。
  • transactionid:交易的 ID。 该参数与 dbBeginTransactiondbEndTransaction 操作结合使用。
  • querypassthrough:将查询按原样传递给操作,而不是执行客户端验证和语法纠正。
  • enforceparameterizedquery:布尔值(true/false),用于强制对 SQL 语句进行参数化验证。 默认值为true

输出属性

  • db:affectedrows: 查询结果受影响的行数。
  • db:result: 查询执行的状态。

示例

此示例对目标数据库执行 CREATE 语句以创建表和各种列定义。

<!-- 设置输入数据库项和属性 -->
<arc:set attr="db.driver" value="cdata.jdbc.mysql.MySQLDriver" />
<arc:set attr="db.conn" value="jdbc:cdata:mysql:server=localhost;port=3306;database=sakila;user=root;password=Password123;"/>
<arc:set attr="db.query" value="CREATE TABLE Neighbors (PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255));"/>

<!-- 调用操作,传入db项并设置输出项-->
<arc:call op="dbNonQuery" in="db" out="results" >
  <!-- 可选的日志记录步骤,用于在应用程序日志中查看查询的输出属性 -->
  <arc:set attr="_log.info" value="[results.*]" />
</arc:call>

此示例对目标表执行参数化 INSERT 语句:

<!-- 设置输入数据库项和属性 -->
<arc:set attr="db.driver" value="cdata.jdbc.mysql.MySQLDriver" />
<arc:set attr="db.conn" value="jdbc:cdata:mysql:server=localhost;port=3306;database=sakila;user=root;password=Password123;"/>
<arc:set attr="db.query" value="INSERT INTO Neighbors (PersonID, LastName, FirstName, Address, City ) VALUES (@param1, @param2, @param3, @param4, @param5);"/>
<arc:set attr="db.paramname#1" value="param1" />
<arc:set attr="db.paramvalue#1" value="1" />
<arc:set attr="db.paramname#2" value="param2" />
<arc:set attr="db.paramvalue#2" value="Bobby" />
<arc:set attr="db.paramname#3" value="param3" />
<arc:set attr="db.paramvalue#3" value="Ricky" />
<arc:set attr="db.paramname#4" value="param4" />
<arc:set attr="db.paramvalue#4" value="26 Wonder Bread Lane" />
<arc:set attr="db.paramname#5" value="param4" />
<arc:set attr="db.paramvalue#5" value="Charlotte" />

<!-- 调用操作,传入db项并设置一个输出项-->
<arc:call op="dbNonQuery" in="db" out="results" >
  <!-- 可选的日志记录步骤,用于在应用程序日志中查看查询的输出属性 -->
  <arc:set attr="_log.info" value="[results.*]" />
</arc:call>