Domanda

Ho il seguente codice in un modulo 4GL:

DEFINE f_drec RECORD LIKE verhistd.*
DEFINE f_input
   RECORD
      long_desc LIKE verhistd.long_desc
   END RECORD
Let f_input.long_desc = f_drec.long_desc
.

dove verhistd.long_desc è un tipo di dati di testo.Ma quando compilo il codice ottengo questo messaggio di errore:

|
|      The variable "f_input.long_desc" is too complex a type to be used in an
| assignment statement.
| See error number -4323.
.

Il messaggio di errore per -4323 parla solo di array e record dello schermo, non tipi di dati di testo.

È stato utile?

Soluzione

Non ho utilizzato i tipi di dati di testo in nessuno dei codici a 4GL che devo mantenere, tuttavia una vista rapida della documentazione sui campi di testo in IBM 4GL per esempio Documentazione suggerisce che 4GL tratta BLOB di testo come custodia speciale e non li carica per impostazione predefinita a causa della potenziale utilizzo della memoria.

Se si visualizza il codice di esempio che hanno nell'esempio 18 (mi dispiace, hanno solo versioni PDF della documentazione online ora) Dovresti darti un esempio abbastanza semplice di come affrontare un testo BLOB.

.

Poiché una colonna Blob può contenere una quantità molto grande di dati, a 4GL Il programma non alloca spazio per una variabile BLOB in quanto fa altre variabili tipi. Invece di contenere il valore effettivo, una variabile BLOB contiene A Puntatore nella posizione in cui questi dati sono memorizzati. Questa posizione può essere in Memoria, in uno stato temporaneo creato dal programma o in uno speci fi fi le nominato dal programmatore. L'istruzione di localizzazione inizializza la variabile BLOB con la posizione del valore BLOB.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top