Recuperar UniVerse ¿cómo puedo consultar un archivo para todos los valores de sus columnas?

StackOverflow https://stackoverflow.com/questions/2068026

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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top