Definición de campo (código de función 8)
Debe proporcionar la entrada y la salida que se requieren para una operación de definición de campo.
Al entrar
La entrada que se proporcionó a la operación de definición de campo y la salida que se requiere son las siguientes:
| Registrar | Contiene |
|---|---|
| 1 | Dirección de la lista de parámetros de procedimiento de campo (FPPL) |
| del 2 al 12 | Valores desconocidos que deben restaurarse al salir. |
| 13 | Dirección del área de almacenamiento del registro. |
| 14 | Dirección de devolución. |
| 15 | Dirección del punto de entrada de la rutina de salida. |
El contenido de todos los demás registros y de los campos no enumerados en las siguientes tablas es impredecible.
El área de trabajo consta de 512 bytes contiguos sin inicializar.
| Campo | Contiene |
|---|---|
| FPBFCODE | 8, el código de función |
| FPBWKLN | 512, la longitud del área de trabajo |
| Campo | Contiene |
|---|---|
| FPVDTYPE | Uno de estos códigos para el tipo de datos del valor de la columna:
|
| FPVDVLEN | El atributo de longitud de la columna |
Se omite el campo FPVDVALE. El FVD proporcionado tiene una longitud de 4 bytes. El campo FPPVL contiene la información:
| Campo | Contiene |
|---|---|
| FPPVLEN | La longitud, en bytes, del área que contiene la lista de valores de parámetros. El valor mínimo es 254, incluso si no hay parámetros. |
| FPPVCNT | El número de descriptores de valor que siguen; cero si no hay parámetros. |
| FPPVVDS | Un conjunto contiguo de descriptores de valor, uno para cada parámetro de la lista de valores de parámetros, cada uno precedido por un campo de longitud de 4 bytes. |
Al salir
| Registrar | Contiene |
|---|---|
| del 2 al 12 | Los valores que contenían en el momento de la entrada. |
| 15 | El entero cero si la columna descrita en el CVD es válida para el procedimiento de campo; de lo contrario, el valor no debe ser cero. |
Los siguientes campos deben configurarse como se muestra; todos los demás campos deben permanecer como al ingresar.
| Campo | Contiene |
|---|---|
| FPBWKLN | La longitud, en bytes, del área de trabajo que se proporcionará a las operaciones de codificación y decodificación de campos; 0 si no se requiere área de trabajo. |
| FPBRTNC | Un código de retorno de carácter opcional de 2 bytes, definido por el procedimiento de campo; se deja en blanco si no se proporciona ningún código de retorno. |
| FPBRSNC | Un código de motivo de carácter opcional de 4 bytes, definido por el procedimiento de campo; se deja en blanco si no se proporciona ningún código de motivo. |
| FPBTOKP | Opcionalmente, la dirección de un mensaje de error de 40 bytes que reside en el área de trabajo o en el área estática del procedimiento de campo; ceros si no se da ningún mensaje. |
Los errores señalados por un procedimiento de campo dan como resultado SQLCODE -681 (SQLSTATE '23507'), que se establece en el área de comunicación SQL (SQLCA). El contenido de FPBRTNC y FPBRSNC, y el mensaje de error al que apunta FPBTOKP, también se colocan en los tokens, en SQLCA, como campo SQLERRMT. El significado del mensaje de error viene determinado por el procedimiento de campo.
| Campo | Contiene |
|---|---|
| TIPO DE FPVD | El código numérico para el tipo de datos del valor del campo. Cualquiera de los tipos de datos enumerados en la Tabla 1 es válido. |
| FPVDVLEN | La longitud del valor del campo. |
El campo FPVDVALE no debe establecerse; la longitud del FVD es de solo 4 bytes.
- El procedimiento de campo no debe aumentar la duración del FPPVL.
- FPPVLEN debe contener la longitud real del FPPVL modificado, o 0 si no se devuelve ninguna lista de parámetros.