Tag: mainframe

将C#用于FTP文件到大型机,包括数据集 – 将FTP脚本转换为FtpWebRequest代码

我使用cmd(Windows)将文件发送到IBM Mainframe并且工作正常它是这样的: Open abc.wyx.state.aa.bb User Pass lcd c:\Transfer> Put examplefile ‘ABCD.AA.C58FC.ABC1FD.ZP3ABC’ close bye 我需要将其转换为C#。 我一直在尝试使用FtpWebRequest但没有运气。 我想不出如何包含数据集。 当我运行应用程序时,我收到以下错误: ((System.Exception)(ex))。消息“远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)。” 550无法存储远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问)。 ((FtpWebResponse)ex.Response).StatusDescription“550无法存储/’ABCD.AA.C58FC.ABC1FD.ZP3ABC/examplefile’\r\n” 这是我在C#中得到的 string user = “user”; string pwd = “password”; string ftpfullpath = @”ftp://abc.wyx.state.aa.bb//’ABCD.AA.C58FC.ABC1FD.ZP3ABC’/examplefile'”; try { FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath); ftp.Credentials = new NetworkCredential(user, pwd); ftp.KeepAlive = true; ftp.UseBinary = false; //Use ascii. ftp.Method = WebRequestMethods.Ftp.UploadFile; […]

使用C#动态读取COBOL重新定义

我正在制作一个C#程序,它能够动态读取用COBOL编写的IBM HOST Copybook并从中生成一个SQL表。 生成表后,我可以将文件上传到我的程序中,它将读取,从IMB-37转换并将文件插入到该sql表中。 到目前为止,我几乎可以处理任何事情,尽管我遇到了REDEFINES的一些问题。 例如: 10 SOME-FIELD PIC 9(3) COMP-3. SCRRB205 4117 10 SOME-OTHER-FIELD REDEFINES 3041-17 4117 SOME-FIELD PIC X(2). 3041-17 我知道在这种情况下,重新定义取代了它上面的字段,虽然我不明白的是编译器如何知道它是否应该使用重新定义。 我假设在这种情况下它将是因为第一个是第二个是一个字符的数字,尽管在下面的例子中它们都使用了字符。 05 STREET-ADDRESS. 10 ADDRESS-LINE-1 PIC X(20). 10 ADDRESS-LINE-2 PIC X(20). 05 PO-BOX REDEFINES STREET-ADDRESS PIC X(40). 我试图忽略重新定义,因为它总是占用相同的空间,但是在原始字段被打包并且重新定义的字段不是的情况下,我需要知道何时解压缩字段。 对此有任何帮助将是惊人的家伙!