FORMULA LANGUAGE


@DbColumn (origen de datos Domino)
Ejemplo

Da como resultado una columna de valores de una vista o carpeta de una base de datos de Domino.

Sintaxis

@DbColumn( tipo : caché ; servidor : base-de-datos ; vista ; número-columna )

Nota El separador entre los argumentos de cadena tipo y caché, así como los de servidor y base de datos es el signo de dos puntos; el resto de los separadores son puntos y comas.

Parámetros

tipo


caché servidor : base-de-datos
vista
número-columna
Resultado

valores-hallados


Cómo especificar el servidor y la base de datos

Puede especificar el parámetro servidor : base-de-datos de varias formas:


Lotus Domino buscará las réplicas en el orden indicado a continuación y usará la primera que encuentre:
Notes
Cómo especificar el nombre de la vista o carpeta

Puede especificar el parámetro vista (o carpeta) usando tanto su nombre como su sinónimo. Por ejemplo, si la vista Apellidos está dispuesta en cascada tras Por autores en el menú Ver y posee el sinónimo |Apell, tendría el nombre siguiente en el cuadro de propiedades de la vista:

Por autores\Apellidos | Apell

Al hacer referencia a esta vista con @DbColumn, basta con que emplee el sinónimo Apell, encerrado entre comillas:

"Apell"

Si el nombre de la vista no tiene un sinónimo, utilice la secuencia completa, también entre comillas. Como está empleando el nombre en una fórmula, la "\" debe ir precedida por otra "\" para que Lotus Domino la interprete correctamente:

"Por autores\\Apellidos"

Cómo especificar el número de la columna

Para especificar el parámetro número-columna, cuente las columnas de la vista de izquierda a derecha, a partir del número 1. No obstante, debido al modo en que Lotus Domino indexa las vistas, no todas las columnas cuentan a la hora de realizar la consulta.

Para calcular el número de una columna a efectos de utilizarlo en una consulta:

1. Cuente las columnas de la vista, de izquierda a derecha. Hágalo mientras ve la vista en el modo de diseño para asegurarse de que tiene en cuenta todas las columnas, incluidas las que se emplean para ordenar la vista o para organizarla por categorías, y que pueden estar ocultas.

2. Omita todas las columnas que muestran un valor constante, como, por ejemplo, 32 o "Presentado por:". Si una columna contiene una fórmula que da el mismo resultado para todos los documentos, no se considera una "constante"; por lo tanto, no la omita del recuento.

3. Omita todas las columnas que usan únicamente las funciones @ siguientes: @DocChildren, @DocDescendants, @DocLevel, @DocNumber, @DocParentNumber, @DocSiblings, @IsCategory, @IsExpandable.

4. Ahora, vuelva a contar las columnas, de izquierda a derecha.

El número de columna resultante es el valor que debe especificar en la fórmula de la consulta.

Si especifica una columna inexistente, no se producirá ningún error, sino que simplemente dará como resultado un valor nulo.

Cómo acceder a los resultados

Si el resultado de @DbColumn son varios valores, se les dará formato de lista y se empleará el separador de valores múltiples especificado en el cuadro de propiedades del campo actual al diseñar el formulario.

@DbColumn puede dar como resultado un máximo de 64 kB de datos. Use las ecuaciones siguientes para determinar la cantidad de datos que pueden obtenerse con @DbColumn.

Para búsquedas que dan como resultado texto:

2 + (2 * número de entradas obtenidas) + tamaño total del texto de todas las entradas

Para búsquedas que dan como resultado números o fechas:

(10 * número de entradas obtenidas) + 6

Uso

@DbColumn tiene su aplicación fundamental en fórmulas de palabras clave. En lugar de crear una fórmula con la lista de palabras clave permitidas en un campo y actualizar dicha lista periódicamente (editando el formulario que contiene el campo de palabras clave), @DbColumn le permite recuperar dinámicamente una lista de valores procedentes de una vista o de una tabla de base de datos.

No funciona en fórmulas de columna, de selección ni de agente que se activa al recibir documentos por correo.

Agentes que se ejecutan en los servidores - aspectos de seguridad

Considere que la base de datos que contiene @DbColumn es la base de datos de origen de la consulta y que la base de datos que se está consultando es la base de datos de destino.

Cuando utilice @DbColumn en un agente, éste podrá acceder a los datos de una base de datos de destino que se esté ejecutando o bien en el mismo servidor que alberga la base de datos de origen o bien en otro servidor. El firmante del agente debe disponer, como mínimo, de acceso de lector a la base de datos de destino.

Nota Los agentes que se ejecutan en servidores de la Versión 5 o de anteriores versiones, sólo pueden acceder a las bases de datos de destino que se encuentran en el mismo servidor que la base de datos de origen. Además, el firmante del agente debe disponer, como mínimo, de acceso de lector a la base de datos de destino. El uso de un ID de réplica en la LCA aún es posible en la Versión 6 y posteriores. Si el firmante del agente no está disponible en la LCA de una base de datos anterior a la Versión 6, pero sí lo está el ID de réplica, se utilizará éste en su lugar. (Conceda acceso a la base de datos de origen agregando el ID de réplica de la base de datos de origen, por ejemplo 85255CEB:0032AC04, a la LCA de la base de datos de destino y asignándole un acceso de lector o superior.)

Otros tipos de agentes - aspectos de seguridad

Cuando se usa @DbColumn en cualquier otro tipo de fórmula o agente, tiene acceso sin límites a cualquier base de datos de destino almacenada en la estación de trabajo del usuario. Si la base de datos de destino de encuentra en otro servidor Domino, el acceso de @DbColumn viene determinado por el acceso del propio usuario (el asignado a su archivo ID de Notes).

@DbColumn no está sujeta a la lista de Acceso de lectura de una vista.

Equivalencias en otros lenguajes

Propiedad ColumnValues de la clase NotesDocument de LotusScript

Método GetColumn de la clase NotesView de LotusScript

Propiedad ColumnValues de la clase Document de Java

Método getColumn de la clase View de Java

Ejemplo
Véase también