|
|
1
2
如果您不熟悉OS/400,请准备好 陡峭的 学习曲线。通过征募本地的AS/400向导来尝试减少痛苦,这对于编写奇怪的CL程序、获得授权等是必不可少的。 就我个人而言,我总是使用提供客户端访问的ODBC驱动程序,但仅限于只读。我不能证明这一点,但是十年的AS/400编程告诉我,试图从AS/400外部更新一个AS/400数据库是一个坏主意。 确实可以从.NET应用程序调用as/400 cl程序,如果业务逻辑已经在那里编程,那么使用它是有意义的;在.NET中重新发明它是昂贵的,容易出错,而且速度会慢得多。 相同的报告信息:尽可能使用现有的。 需要注意的事项(其中一些很可能过时): DB2SQL与其他SQL方言有许多细微的区别。许多DBMS将接受
相当于
DB2可能会看到,也可能不会看到,这取决于表。否则,前者可能会非常缓慢。也就是说,如果您有性能问题,那么有一些非常灵活的工具来分析DB/2查询计划;您需要您的AS/400向导来使用它们,尽管它们有点模糊。 如果您处于国际环境中,处理代码页需要注意。制作 当然可以 您的AS/400具有相同的系统代码页。 如果您处于多AS/400设置中,请注意可以透明地访问本地和远程表(通过passthrough)。 OS/400具有广泛的向后支持历史。一般来说,只要您所说的所有AS/400都在同一个主要版本上,就不必担心版本问题。它也是一个非常稳定的平台;操作系统错误非常罕见,而且很快就被修复。
如果您可以管理它,可以使用
高温高压 |
|
|
2
4
好吧,几年前我曾在.NET上使用和连接AS/400和大型机系统。我可能无法直接回答你的问题,但我可以告诉你什么对我有用,以及我过去做的一些事情。 这类工作的常用术语是 Enterprise Application Integration (eai)所以你可以从阅读开始。据我所知,在AS/400S上可能不止有DB2数据库。我们有两种方法可以处理绿屏(或传统)应用程序:
为了部分回答您的第一个问题,为了直接访问数据源,我们使用当时2家公司提供的ODBC驱动程序创建了DSN(数据源名称),即Rumba(由Wall Data制造)和Attachmate(由我认为IBM制造)。要创建一个ODBCDSN,通常需要进入管理工具/数据源并添加一个系统DSN。您需要(旧系统)主机名、用户名和密码来登录。然后,我们在.NET应用程序中使用这些DSN创建到旧应用程序的连接。如果您有一个DSN,那么您可以使用类似于SQL Server DTS/SSIS的东西从源中获取数据并将其保存到某个位置,无论是数据库、csv文件、excel文件等。还很可能有一个报告工具(Crystal/SQL Server Reporting Services)访问直接使用DSN的数据源,以便您可以直接从数据源报告。同样,您也可以在几年前创建不含DSN的连接,我们需要DSN。 要部分回答您的第二个问题,如果您愿意,可以调用并使用绿色屏幕应用程序上的逻辑。绿色屏幕通常分为若干行和列,我们使用一个称为hllapi的标准,它将按键从Windows系统发送到旧屏幕上的位置。我们使用了伦巴作为OCX控制,我相信Attachmate也是。例如,您可以创建一个带有用户ID和密码文本框的WinForms窗体,然后创建一个到旧应用程序的会话,通常第一个屏幕是登录屏幕。然后使用绿色屏幕上用户名和密码字段的位置,将用户ID和密码发送到这些位置,然后发送一个输入键或登录所需的任何内容。然后,您可以导航到另一个屏幕,例如搜索屏幕,发送数据和按键以执行搜索,然后从绿色屏幕中获取结果数据。另一种方法是创建Win/Web表单,复制绿屏应用程序并直接从数据存储中获取数据。这样做的好处是,您不必知道传统应用程序的按键/导航,对于一个大的绿色屏幕系统来说,这可能会很麻烦。没有对错,这取决于具体情况。我们公司两者兼而有之。 对于第三个问题,这取决于您想要的报告类型。如果它们需要实时,那么您可以直接连接到数据存储。如果它们不需要实时性,那么您可以每晚从旧系统传输数据,并将数据存储在SQL Server中,然后针对SQL Server数据运行报表。 第四个问题的一个答案是,你肯定需要找到一个熟悉绿屏应用程序的人。你将花费数小时浏览传统应用程序的屏幕,因此访问了解系统的用户至关重要。此外,您还需要登录ID和密码等。 最后还有一些第三方公司专门负责将数据从源传输到目的地,其中一个是数据镜像。另一种方法是使用中间层集成产品(如Biztalk或Tibco),这两种产品都从一个或多个源获取数据,并将它们粘贴到一个或多个目标,但这可能会造成过度破坏,具体取决于您的要求。 希望有帮助,祝你好运:) |
|
|
3
2
我使用客户端访问(现在称之为什么)驱动程序连接到我认为基于ADO.NET的服务器。通过我拥有的驱动程序版本(我们在v5r4上),您不能也必须创建存储过程来调用程序(这并不难)。我想我听说了最新版本的你可以执行程序,但我不确定。
我要看的另一件事是创建一个只有权限的用户,你需要做的就是做你需要做的事情,以防有人持有这个用户名和密码,他们不能做太多。我们设置了只读(
|
|
|
4
0
[抱歉,没有看到这是一个旧的帖子。希望它仍然有用] 我已经编写了绿屏和.NET应用程序。根据我的经验…… 1。 odbc-有效,但您需要在所有用户PC上设置odbc设置。.NET数据提供程序更好,因为里面有更多的.NET特定的内容,并且不需要在所有客户端上设置odbc设置。在AS400中提供.NET提供程序之前,我主要使用OLEDB。请参阅 http://www-03.ibm.com/systems/i/software/access/windows/dotnet/ 有关详细信息 2.使用存储过程。存储过程通常比将所有逻辑放入.NET更快。创建SQL或外部存储过程中编写的RPG,CL,COBOL,C++等。我不是在.NET中重新编写所有的RPG旧逻辑,我只是稍微改变一下旧的RPG程序,并将其转换为外部存储过程。 3.对于报表,再次使用返回结果集的存储过程。它的速度快,清洁,与Crystal Report配合良好。 4.技术细节。如果您有许多客户机要安装该程序-使用Web服务-您不必在所有PC上安装具有正确版本的客户机访问。 观看你的OS400版本。 如果使用OS400 v6r1及更高版本,请确保使用的客户端访问是v5r4或更高版本-存储过程在较旧的客户端访问中可能无法正常工作。 ODBC在旧的客户端访问中工作,但我认为.NET数据提供程序只在v5r3中工作。 如果使用.NET数据提供程序v6r1编译.NET程序,那么用户客户端访问权限也必须是v6r1。 尽可能使用存储过程以实现安全性(不需要公开表),并简化程序逻辑(可以重用RPG程序) 在OS400侧,确保系统值qccsid设置为正确的ccsid,例如37表示英语。ODBC,OLEDB,.NET驱动程序将自动将正确的字符转换/转换为.NET程序。不要将值保留为65535。 希望这有帮助。 |