- 论坛徽章:
- 0
|
Client Access 问题(急!!)
使用IBM CA 提供的Api函数:
Dim AsSys As New cwbx.AS400System
Dim AsTr As cwbx.DatabaseTransferResults
Dim Dlt As New cwbx.DatabaseDownloadRequest
Dim DltACC As cwbx.DatabaseDownloadASCIIOptions
Dim SysNum As Integer
Dim SysExist As Boolean
Dim StrTime As Date
Dim FreeNum As Integer
'检查收到的地址是否有效 AS400
SysExist = False
StrTime = Now()
For SysNum = 1 To SysName.Count
If SysName.Item(SysNum) = RunInput(1) Then
SysExist = True
Exit For
End If
Next SysNum
If SysExist = False Then
Ca_Down = -305
Exit Function
End If
'开始系统连接定义
On Error GoTo SysErr
AsSys.Define RunInput(1) (ip地址)
AsSys.UserID = RunInput(2) (用户名)
AsSys.Password = RunInput(3) (密码)
AsSys.Signon
'开始下载定义
Set Dlt.System = AsSys
Dlt.AS400File = RunInput(4) (库名/表名)
Dlt.Query.Select = RunInput(5) (字端名)
Dlt.Query.Where = RunInput(6) (条件)
If Trim(RunInput( ) = 0 Or Len(Trim(RunInput( )) = 0 Then
Dlt.pcFile.FileType = cwbdtASCIIText (保存格式)
Set DltACC = Dlt.pcFile.Options
DltACC.TruncateSpaces = False
DltACC.CodePage = cwbnlCodePageClientANSI
Else
Dlt.pcFile.FileType = cwbdtCSV
End If
Dlt.pcFile.Name = RunInput(7)
'开始下载
On Error GoTo DltErr
Dlt.Download
Set AsTr = Dlt.TransferResults
'下载结果处理
On Error GoTo AsTrErr
If AsTr.DataErrors.Count >; 0 Then
Select Case AsTr.DataErrors.Item(1).ErrorType
Case 1, 5
Ca_Down = -311
Case 2, 6
Ca_Down = -312
Case 3, 7
Ca_Down = -313
Case 4, 8
'数据转换错误
Ca_Down = -314
End Select
End If
Ca_Down = DateDiff("s", StrTime, AsTr.CompletionTime)
Set DltACC = Nothing
Set Dlt = Nothing
Set AsSys = Nothing
Exit Function
DltErr:
Select Case Dlt.Errors.ReturnCode
Case 3
'下载文件目录不存在
Ca_Down = -322
Case 112
'磁盘空间满
Ca_Down = -323
Case 7004
'空记录
FreeNum = FreeFile
Open RunInput(7) For Append As #FreeNum
Close #FreeNum
Ca_Down = -308
Case 6053
'通讯错误
Ca_Down = -306
Case 7412
'AS400系统文件存在记录锁
Ca_Down = -307
Case 7040
'指定文件或者库不存在
Ca_Down = -316
Case Else
'出现无法预测错误
Ca_Down = -317
End Select
Set AsSys = Nothing
Exit Function
SysErr:
Select Case AsSys.Errors.ReturnCode
Case 8002
'密码错
Ca_Down = -309
Case 8001
'用户名错
Ca_Down = -310
Case Else
'出现无法预测错误
Ca_Down = -317
End Select
Exit Function
AsTrErr:
Ca_Down = -315
End Function |
|