我想用TMSSqlRow获取受影响/删除/更新的行数。
这是工作的方式:
文件使用包含很多像DELETE一样的SQL语句... INSERT ... UPDATE ... 每行由";"
分开但是现在,我希望获得每个语句的结果(x行更新,结果显示在管理工作室中)。
当我进入"高级设置" tmssqlrow的选项卡,我选择"传播QUERY的记录集"并选择我之前创建的列(对象类型)。
执行时,我有这个错误:" executeQuery方法必须返回一个结果集"。
那么,我如何获取每个语句的结果并将其(通过示例)插入数据库/文件中?
提前谢谢。 问候, 泽维尔答案 0 :(得分:3)
选项“Propagate QUERY的记录集”必须与tParseRecordSet结合使用,才能从返回的记录集中提取信息。但是,这还不够:您必须显式编写查询以返回更新/删除的记录数。
这就是我的所作所为:
我的tJDBCRow(与tMSSqlRow相同)查询看起来像这样(注意我在更新查询之前必须添加'set nocount on',然后'select @@ rowcount')
tParseRecordSet从列结果集中检索行数(nbLines是我的rowcount的别名)
答案 1 :(得分:0)
如果需要受影响的行数,更好的选择是使用tMSSqlOutput组件,该组件可以更新,插入或删除行。执行后,该组件将提供全局变量以显示该操作影响了多少行。
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_UPDATED"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_INSERTED"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_DELETED"))