我需要创建一个由我的SQL触发器触发的数据队列; 的SQL触发器已经完成,但我不知道如何实现数据队列如何在AS400中创建由SQL触发器触发的数据队列?
回答
一般情况下,SQL意在数据库采取行动。与操作系统对象交互并不容易。但是,DB2 for i将允许您执行程序,包括将消息发送到数据队列的API:QSNDDTAQ。这是丑陋的。
call qsnddtaq ('DTAQ ', 'LIBRARY ', x'0008F', 'From SQL')
的参数是:
- 数据队列名(10个字节)
- 数据队列库名(10个字节)
- 消息长度(堆积(5,0))
- 邮件内容
如果SQL触发器使用变量而不是文字,它不需要做任何特殊的事情来格式化长度 - 显示的文字是内部包装(5,0)的样子。
如果我被分配这个任务我会创造一个CL程序并调用,而不是API。然后,我可以使用packed(15,5)作为长度参数,这是'自然'跨语言数字长度,并提供陷印错误。
+1 - 同意;如果您要与非SQL对象通话,请将其包装在CL或RPGLE程序中,然后让触发器调用该对象。 (或者,只是使你倾倒的东西成作为队列的表,有一个经常性监测工作...) –
谢谢,但我不很了解,对我来说是CL程序会适合太(我认为)只要我能做到这一点(因为我甚至不知道把文件放在哪里才能被as400执行)。但在这种情况下,如果我想只发送更改的数据(我知道因为thr触发器而发生了什么变化),我该怎么做?该表是:LIBRARY.TABLE,字段:〔A1,A2,A3],SQL查询: “选择A1,A2,从LIBRARY.TABLE A3其中??发生了什么变化?” –
我不明白业务问题。我想你是说如果A1改变了,你想把A1的内容发送到数据队列。如果A2更改,则要将A2的内容发送到数据队列。我想你想要改变每个字段的单独消息?通常情况下,数据队列用于进程之间的通信。其他进程希望在数据队列消息中看到什么? –
- 1. Azure WebJobs队列触发器不触发
- 2. Sql创建触发器
- 3. PL/SQL创建触发器
- 4. 如何创建这种SQL触发器?
- 5. 如何创建触发器?
- 6. 在SQL Server中创建触发器
- 7. 如何在sqlite3中创建触发器?
- 8. 如何在sharepoint中创建触发器?
- 9. jQuery队列和触发器
- 10. 如何创建触发器触发器自引用触发器......是啊
- 11. Oracle触发器队列/出队不会触发
- 12. 创建触发器
- 13. 创建触发器
- 14. 创建触发器
- 15. 创建只触发特定行的SQL触发器
- 16. SQL Server:触发器触发
- 17. 在SQL Server表上创建触发器
- 18. 从触发器(Sybase)中触发触发器的sql
- 19. 卡在创建触发器
- 20. 如何在sqlite数据库中创建触发器?
- 21. 如何在MySql中为特定数据库创建触发器?
- 22. SQL服务器:DLL创建触发器
- 23. 如何创建触发器从另一个表中的数据
- 24. 如何创建触发器的MySQL 5.6
- 25. SQL服务器:触发VS数据库触发器
- 26. 如何在SQL Server中为每行创建触发器
- 27. 如何在SQL Server 2005中更新触发器之前创建
- 28. 如何在SQL Server 2012中创建登录触发器
- 29. 如何在MS SQL 2005中创建触发器
- 30. SQL触发器创建外键行
你似乎有很多的RPG/IBM我的问题。你应该查看[midrange.com](http://midrange.com)邮件列表。 [RPG-L](http://murl.me/rpgl)和[MIDRANGE-L](http://murl.me/midrangel)。那里有更多的专家可能会更好地回答你的问题。 –
谢谢。我发了一个问题,但我觉得很难使用 –