Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando el último parámetro de entrada o el último parámetro de salida de un método es una cadena, esa cadena puede tener un tamaño variable. Su tamaño puede variar de 0 al número máximo de bytes especificados para su longitud. Cuando el valor devuelto es una cadena y se coloca después de todos los demás parámetros de salida, puede ser el campo de salida final de tamaño variable.
La cadena debe enviarse o recibirse por última vez si tiene un tamaño variable. De lo contrario, no hay ninguna manera confiable de determinar el final de una cadena de tamaño variable y el siguiente elemento de datos del búfer. La lógica de la aplicación host envía solo los datos de la parte de la cadena necesaria.
COBOL nunca establece la opción de tamaño variable para cadenas. Para establecer esta propiedad manualmente, establezca la propiedad Campo final de tamaño variable como variable. La propiedad Campo Final de Tamaño Variable se subdivide en dos partes según la dirección. Establezca la dirección que desea que sea true.
El siguiente ejemplo de COBOL tiene como último elemento de datos una cadena grande que podría optimizarse enviando solo el tamaño de la cadena:
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).
Cuando se importa, este código COBOL crea el siguiente método:
CustomerInformation(lCustomerNo As Long,_
strLastName As String,_
strFirstName As String,-
strComments As String)
El siguiente código de Visual Basic llama al método :
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