我对“天才工作”有意见。我需要删除穹顶行(查询将由以前的组件提供)。为了简化,我这样做:

如果取消选中“传播查询记录集”,则作业将完全运行。但是,在检查之后(我在MSSQL中使用了相同类型的组件,而没有问题),该作业在错误消息中失败:
Can not issue data manipulation statements with executeQuery().并在组件连接的附加参数中指定"AllowMultiQueries“。
这是一种用tmysqlrow删除行数的方法吗?我希望防止在tmysqlinput之前使用,然后获取计数(*),然后删除。
发布于 2018-02-01 17:36:37
一个简单的解决方案是使用tMysqlRow来处理删除,然后使用tMysqlInput返回已删除的行数:

DELETE和SELECT必须使用相同的连接发出,因此必须使用tMysqlConnection,在末尾必须有tMysqlCommit (除非您在连接上使用了自动提交(顺便说一下,不应该使用自动提交),否则tMysqlCommit是提交更改的必要条件)
替代解决方案
下面是另一种解决方案,在该解决方案中,我发送一个ID列表(在tFixedFlowInput中定义,但很可能从file..etc中读取)删除到tMysqlOutput (对数据集的操作设置为Delete),并将id列设置为组件模式中的键:

然后,您可以简单地使用tMysqlOutput_NB_LINE_DELETED全局变量来获取已删除的行数。

https://stackoverflow.com/questions/48565198
复制相似问题