可変サイズの文字列
メソッドの最後の入力パラメーターまたは最後の出力パラメーターが文字列の場合、その文字列のサイズは可変です。 そのサイズは、0 から、その長さに対して指定された最大バイト数まで異なる場合があります。 戻り値が文字列で、他のすべての出力パラメーターの後に配置される場合は、可変サイズの最終出力フィールドにすることができます。
文字列のサイズを可変にする場合は、最後に送信または受信する必要があります。 それ以外の場合、可変サイズの文字列の末尾とバッファー内の次のデータ項目を決定する信頼性の高い方法はありません。 ホスト アプリケーションのロジックは、必要な文字列の部分のデータのみを送信します。
COBOL では、文字列の可変サイズのオプションは設定されません。 このプロパティを手動で設定するには、 Variable Size Final Field プロパティを変数に設定します。 プロパティ [可変サイズの最終フィールド] は、方向によって 2 つの部分に分割されます。 目的の方向を 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