当方法中的最后一个输入参数或最后一个输出参数是字符串时,该字符串的大小可以可变。 其大小可以从 0 到为其长度指定的最大字节数不等。 当返回值为字符串并且它位于所有其他输出参数之后时,它可以是大小可变的最终输出字段。
如果要对字符串大小进行可变调整,则必须最后发送或接收字符串。 否则,没有可靠的方法来确定大小可变的字符串的末尾和缓冲区中的下一个数据项。 主机应用程序的逻辑仅发送所需字符串部分的数据。
COBOL 从不为字符串设置大小可变的选项。 若要手动设置此属性,请将 Variable Sized Final Field 属性设置为 variable。 属性 可变大小最终字段 按方向细分为两部分。 设置要为 true 的方向。
下面的 COBOL 示例将一个大字符串作为其最后一个数据项,该字符串可通过仅发送字符串的大小进行优化:
01 CUSTOMER-DATA.
05 CUST-HEADER.
10 CUSTOMER-NUMBER PIC 9(9).
10 LAST-NAME PIC X(20).
10 FIRST-NAME PIC X(20).
05 COMMENTS PIC X(4096).
导入后,此 COBOL 代码将创建以下方法:
CustomerInformation(lCustomerNo As Long,_
strLastName As String,_
strFirstName As String,-
strComments As String)
以下 Visual Basic 代码调用 方法:
Dim objCustomer As Object
Dim lCustomerNo As Long
Dim strLastName As String
Dim strFirstName As String
Dim strComments As String
lCustomerNo = 100231
'create an instance of the invoicing object
On Error GoTo ErrorHandler1
Set objCustomer = CreateObject("Customer.Invoicing.1")
'invoke the SetInvoices method
On Error GoTo ErrorHandler2
objCustomer.CustomerInformation lCustomerNo, strLastName _
, strFirstName, strComments