大小可變的字串
當方法中的最後一個輸入參數或最後一個輸出參數是字串時,該字串可以可變大小。 其大小可能會從 0 到其長度所指定的位元組數目上限。 當傳回值是字串,而且它位於所有其他輸出參數之後,它可以是可變大小的最終輸出欄位。
如果字串的大小不一定,則必須最後傳送或接收字串。 否則,沒有可靠的方法可以判斷可變大小的字串結尾和緩衝區中的下一個資料項目。 主應用程式的邏輯只會傳送所需字串部分的資料。
COBOL 永遠不會設定字串的可變大小選項。 若要手動設定此屬性,請將 [變數大小最終欄位 ] 屬性設定為變數。 [ 變數大小最終欄位 ] 屬性會依方向細分成兩個部分。 將您想要的方向設定為 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