次の方法で共有


可変サイズの文字列

メソッドの最後の入力パラメーターまたは最後の出力パラメーターが文字列の場合、その文字列のサイズは可変です。 そのサイズは、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