db2 Flutter和IBM as400

vx6bjr1n  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(181)

一个特别的问题:有没有直接的方法来建立AS400连接,或者必须通过PHP?我不需要读取DB2上的数据,但需要执行各种命令(wrkactjob、wrksyssts等)。谢谢......抱歉用英语。我想(也许无法做到)的是:在应用程序屏幕中有按钮,每个按钮执行一个命令(wrkactjob、clroutq等),答案出现在另一个屏幕中......我不想像在5250或telnet上那样直接编写命令

csbfibhn

csbfibhn1#

从你推荐的典型的“健康检查”程序,如wrkactjob和wrksyssts,我猜你的主要目标是有一个应用程序运行在您的Android手机上,以快速检查的状态,无论你在哪里的机器.对吗?
你有没有考虑过如何获得访问机器的IP地址时,你在路上,没有连接到本地WiFi?
正如John Y指出的,你可以通过SQL访问这些“性能数据”,并在你的移动的设备上以任何方便的方式显示它。但我非常怀疑Android是否提供了ODBC基础设施,即使你可能设法从IBM那里获得了ODBC驱动程序的正确二进制blob(CPU方面)。
否则,如果需要UI元素而不是文本输出,则需要创建一种机制来抓取屏幕上显示的任何内容,并将该文本表示转换为Flutter提供的UI元素。
如果你已经怀疑你不能用Flutter进行telnet,我认为你必须在考虑如何开始开发一个应用程序之前,学习很多关于Flutter作为SDK的知识。TCP/IP网络服务是底层操作系统的一个功能,你必须通过所有的Flutter抽象层,最终能够建立一个TCP会话。如果运气好的话,已经有代码可以为你处理telnet协议的特殊性。2也许没有,那么你需要自己提供telnet协商和协议。3这在许多RFC中都有记载。4自己使用Google。
下一点是:您需要建立转换例程,将EBCDIC字符集数据转换为ASCII。由于Android基于Linux,因此您需要学习如何通过Flutter调用libc例程(如iconv()),为字符集转换提供C接口,包括作为源/目标的EBCDIC风格。
最后一点:您需要学习如何解释5250数据流,并将终端模拟器指令转换为动态地将Flutter UI元素放置在屏幕上的适当位置。当然,您还需要了解向IBM i发送什么以使其理解您的请求。tn 5250数据流也在公开可用的RFC中进行了说明。
操作系统中曾经有一个叫做工作站网关的工具,但正如我所发现的,它在V5 R2中被删除了。这可能提供了一种更简单的方法,因为5250数据流被实时转换为纯HTML。
现在轮到你来决定你的目标是否值得你付出表面上的努力。

vwkv1x7d

vwkv1x7d2#

我不确定你说的“直接”是什么意思。你的意思是做你自己的套接字编程吗?你可以,但是有更简单的连接方法。
最明显和最直接的选择可能是ODBC、JDBC、HTTP和SSH。
当然,ODBC和JDBC提供了一个基于SQL的接口,您可以使用该接口来发出命令(通过QCMDEXC过程或标量函数)或访问日益复杂的IBM i services数组。
如果您所需要的仍然不能通过SQL获得,或者您只是不喜欢使用SQL,那么您可以使用XMLSERVICE库,它在上面提到的任何连接类型的“顶部”提供了自己的编程接口。通常情况下,IBMi上应该已经安装了XMLSERVICE。在几种编程语言中,XMLSERVICE有更高级的 Package 器(.NETNode.jsPHPPythonRubySwift),但在撰写本文时,不是Dart。我不熟悉Flutter,但我想您可以使用JavaScript interop package来处理Node.js Package 器。

相关问题