AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | PTX | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
Finalidad
Lee líneas de un archivo de texto en una tabla de Net.Data.
Formato
@DTWF_READ(nombarchivo, transformar, delimitador, tabla, reintento, líneas, líneainicio, columnas)
@DTWF_READ(nombarchivo, transformar, delimitador, tabla, reintento, líneas, líneainicio)
@DTWF_READ(nombarchivo, transformar, delimitador, tabla, reintento, líneas)
@DTWF_READ(nombarchivo, transformar, delimitador, tabla, reintento)
@DTWF_READ(nombarchivo, transformar, delimitador, tabla)
Parámetros
Tabla 185. Parámetros de DTWF_READ
Tipo de datos | Parámetro | Uso | Descripción |
---|---|---|---|
serie | nombarchivo | INOUT | El nombre del archivo cuyos registros se leen en una variable de tabla. Cuando la llamada se complete satisfactoriamente, este parámetro devolverá el nombre de archivo completamente calificado. |
serie | transform | IN | El formato del archivo:
|
serie | delimitador | IN | Serie de caracteres para indicar los extremos de los valores. Este parámetro es sensible a mayúsculas y minúsculas. Se ignora si transform es ASCIITEXT. |
tabla | tabla | OUT | La variable de tabla en la que se leen los registros de archivo.
Para los usuarios que no utilicen OS/400: La longitud máxima de una fila en una tabla FFI es de 16383 caracteres. Este límite incluye un carácter nulo para cada columna de la tabla de macro de Net.Data. |
entero | reintento | IN | El número de veces que ha de efectuarse un reintento en el caso de que el archivo no pueda leerse inmediatamente. El valor por omisión es no efectuar ningún reintento. |
entero | líneas | INOUT | El número de líneas del archivo que han de leerse en la tabla. Un valor de 0 significa leer hasta el final del archivo o hasta que la tabla esté completa; este es el valor por omisión. Cuando esta llamada de función se completa de modo satisfactorio, se devuelve el número de filas de la tabla resultante. |
entero | líneainicio | IN | La línea del archivo desde la que se ha de iniciar la lectura. El valor por omisión es comenzar la lectura en la primera línea. |
entero | columnas | OUT | Devuelve el número de columnas de la tabla. |
Códigos de retorno
Tabla 186. Códigos de retorno de DTWF_READ
Código de retorno | Explicación |
---|---|
-1001 | El servidor no ha podido procesar una petición de Net.Data para asignar memoria. |
1001 | Un parámetro de entrada contenía un valor NULL. |
1002 | Un parámetro de entrada contenía un valor de serie que consistía en el carácter de terminación nulo. |
1003 | Se ha transmitido un número incorrecto de parámetros en una llamada de función. |
1004 | Se ha transmitido un parámetro en una llamada de función que debería haber sido una variable de tabla de macro Net.Data, pero era de un tipo de variable diferente. |
1005 | Se ha transmitido un parámetro en una llamada de función que debería haber sido una variable de serie, pero era de un tipo de variable diferente. |
1006 | Se ha transmitido una serie literal en una llamada de función para un parámetro que debería haber sido un parámetro de salida. |
1007 | Un parámetro contiene un valor que no es válido. |
1010 | Se han grabado datos en la tabla hasta que se ha llenado y se han desechado los datos restantes. |
2000 | Una función incorporada de la interfaz de archivo plano no ha podido encontrar el archivo especificado. |
2003 | Una función incorporada de la interfaz de archivo plano no pudo leer una fila de datos en una variable de tabla porque el número de bytes de la fila excedía del número máximo de bytes soportados. |
2004 | Una función incorporada de la interfaz de archivo plano estaba intentando encontrar un archivo, pero ha encontrado una vía de acceso en la variable del archivo de configuración FFI_PATH cuya longitud era superior al número máximo de bytes soportados, que es 4095. |
2005 | Se ha producido una anomalía en una llamada a una función del sistema. |
2006 | Una función incorporada de la interfaz de archivo plano no ha podido acceder al archivo especificado porque lo estaba utilizando éste u otro proceso y no se podía compartir en la modalidad especificada. |
Ejemplos
Ejemplo 1:
%DEFINE { myFile = "c:/private/myfile" myTable = %TABLE myWait = "1000" %} @DTWF_READ(myFile, "DELIMITED", ";", myTable, myWait)
Ejemplo 2:
%DEFINE { myFile = "c:/private/myfile" myTable = %TABLE myWait = "0" myRows = "0" myStartrow = "1" myColumns = "" %} @DTWF_READ(myFile, "DELIMITED", ";", myTable, myWait, myRows, myStartrow, myColumns)
Ejemplo 3:
%DEFINE { myFile = "c:/private/myfile" myTable = %TABLE %} @DTWF_READ(myFile, "ASCIITEXT", ";", myTable) @DTW_TB_TABLE(myTable,"BORDER","")