Recuperar UniVerse ¿cómo puedo consultar un archivo para todos los valores de sus columnas?
-
20-09-2019 - |
Pregunta
Una especie de seguimiento a mi pregunta auto-respondido sobre la búsqueda de los nombres de columna.
En el universo no se puede consultar un archivo para todas sus columnas a menos que la frase @
en el diccionario de su archivo se establece en todas las columnas de las tablas. Si no es así, ¿cómo se consulta una tabla de valores para todos sus columnas?
Para que pueda obtener la lista total de la columna (nombre de la columna y el nombre para mostrar) usando:
LIST DICT file NAME
Esto devolverá una lista de todas las columnas y sus nombres para mostrar. ¿Cómo puedo consultar la tabla a continuación para todas las columnas que tiene?
LIST file
Sólo se consulta para LIST file @id
(@id es la única cosa en la @).
Actualizar
He encontrado un blog - una persona que vive y respira Identificación del uso de una versión del universo de más edad que la mía !! donde se queja de lo mismo, pero dice que no hay solución tímido de actualización @
con todas las columnas, por favor dios que alguien lo (Dan Watts) mal probar.
¿Qué pasa si usted tiene una tabla de columna 200 y desea SELECT * para devolver todos 200 columnas? Lo sentimos, pero tendrá para entrar en todos los 200 nombres de columna en que se registro "@". Y si se añade, eliminar o cambiar el nombre de una columna, que tendrá que recordar a editar ese registro "@". yo sentir su dolor! este engorroso enfoque se remonta a ODBC de UniVerse conductor, y supongo que no pueden cambiarlo ahora sin romper mucho de aplicaciones. Puede encontrar el los detalles descritos en inescrutable IBM-ESE en la Guía UniVerse ODBC.
Solución
MOSTRAR TODO no funciona en Universo.
Una cosa que puede hacer es LIST.ITEM o elemento de lista en función de su sabor. Esto mostrará una lista todos los atributos en el archivo que tiene datos en él de esta manera:
>LIST.ITEM ACTIVITY
LIST.ITEM ACTIVITY 06:52:10pm 14 Jan 2010 PAGE 1
1
001 LEXMARK MULTI PRINT
002 THD
003 PJ
007 10355
009 Y
010 CAGNEW
011 15349
012 52111
014 1ý2ý3ý4ý5
015 Deinstall Make/ModelýDeinstall LocationýSigned Off ByýData/Voice AvailableýR
elocated Location
016 1ý2ý3ý4ý5
2
001 OMN
002 OMN
003 PJ
004 OMN*8437
005 6
009 N
010 CAGNEW
011 15349
012 51958
>
Si usted está mirando para hacer algo con los datos a continuación, escribir un programa y hacer algo como esto:
OPEN "ACTIVITY" TO F.ACTIVITY ELSE STOP
SELECT F.ACTIVITY
LOOP
READNEXT ID ELSE EXIT
READ R.ACTIVITY FROM F.ACTIVITY, ID THEN
..................
END
REPEAT
Otros consejos
nombre de fichero LIST.ITEM. Esto devolverá todos los valores
Trate
LIST file ALL
Por supuesto, hay un límite a la cantidad que realmente puede hacer, por lo que puede presentar. ¿Qué es lo que realmente quiere lograr?
Además, de manera más general, usted debe visitar de Rocket Software U2 Sitio . Usted será capaz de descargar el conjunto completo manual allí.
También hay una lista de correo que suele dar respuestas rápidas para ayudar a la gente. Puede encontrar más detalles de que al U2 usuario del sitio Grupo .
Un par de puntos:
proveedor de ADO.NET de IBM Dan se refiere a no será parte del universo (o UniData) en el futuro. El negocio de U2 IBM (incluyendo universo) fue vendido a Rocket Software el pasado otoño, y un par de piezas no hizo la transición.
En segundo lugar, hay un par de frases normalizadas para los diccionarios. @ Es el listado predeterminado a la TRC. @SELECT especifica los campos devueltos desde un estilo SQL SELECT.
>ED DICT VOC @SELECT
New record.
----: I
0001= PH
0002= NAME TYPE
0003=
Bottom at line 2.
----: FI
"@SELECT" filed in file "DICT VOC".
>SELECT * FROM VOC;
NAME.......... TYPE
VERIFY.SQL V
DIVX V
INVISIBLE K
QUIT.KEY X
LEADING K
DELETE.LIST V
...
Para la mayoría de las instalaciones / Captura del universo, los programadores suelen construir algunas formas abreviadas estandarizados para hacer que el acceso ad hoc para datos a través de RECALL / RECUPERAR / INGLÉS / LISTA más fácil. He visto a menudo entradas en el archivo de COV con nombres como F1, F2, F3 y así sucesivamente que se parecen a los diccionarios "D" "S" o. Por lo general son algo estándar como 10 caracteres de ancho y justificados a la izquierda con un encabezado de columna como "Campo 1". El uso de "* A1", "A2 *" y similares parece ser otro estándar que ha evolucionado para nombres de campo genéricos.
Puede utilizar estos en cualquier comando lista y si el diccionario de archivo no tiene un F1 (o lo que sea) que utilizará el uno del archivo de COV. Por lo que un comando como:
LISTA {nombre del archivo} F1 F2 F3
funcionará. Es bueno, porque sólo hay que configurarlo una vez y luego Está disponible en cualquier lugar que no quiere tomar el tiempo buscando los nombres de diccionario.
Además, no hay ninguna razón por la que no se puede configurar un elemento de diccionario tipo de grupo en el COV llamado "ALL.FIELDS" y rellenar un tropecientos artículos de tipo "F1" en ese país. Se vería así:
001: PH 002: F1 F2 F3 F4 F5 F6 F7 F8 F9 {....} F200
Lo que es más o menos lo que su elemento de diccionario @ se vería excepto que tendría todos los elementos del diccionario adecuados en ella. Por lo demás, se podría construir un elemento de diccionario "ALL.FIELDS" en el diccionario del archivo real y poner los elementos del diccionario adecuadas con todo el formato adecuado en ese país.
La advertencia con esto es que no hay ninguna garantía de que un diccionario UV va a ser completa y exacta que en realidad no hay reglas en cualquier lugar que obligan a los programadores para construir los elementos del diccionario de campos de datos que utilizan. Si usted se preocupa mucho, que había necesidad de escribir un programa para escanear a través del archivo y analizar los datos para generar un informe de cómo los campos funcionan realmente a cabo.
Si usted puede llegar al punto en el diccionario va a ser fiable, entonces vale la pena asegurarse de que cada campo tiene una y sólo una correspondiente "A" Tipo de elemento de diccionario. Entonces es trivial para escribir un programa que hace un SELECT en el diccionario para todos los registros de tipo "A" y construye un elemento de diccionario grupo "ALL.FIELD" que les todas las listas. A continuación, sólo asegúrese de que todos los elementos del diccionario añadiendo alternativos para diferentes conversiones de formato o utiliza sólo "S", y elementos de tipo "D" e "I".
En lo personal, me parece cargar el elemento de diccionario @ con todos los campos posibles molesto cuando haciendo cosas todos los días en el entorno de selección. Por lo general, desea cosas que se adapta muy bien a través de una pantalla de 80 columnas con un total de ordenar y opciones que tengan sentido. Yo prefiero ver cosas SQL creó y nombró en consecuencia.