FORMULA LANGUAGE
Usa la información sobre el origen de datos especificado para activar el controlador ODBC adecuado. A continuación, el controlador localiza el DBMS (del inglés Database Management System, sistema de gestión de bases de datos), la tabla y la columna que se han especificado, y da como resultado todos los valores contenidos en dicha columna. Opcionalmente, puede indicar si desea que la lista de valores esté ordenada, si los valores repetidos deben suprimirse y el modo en que deben tratarse los valores nulos.
Nota @DbColumn sólo puede recuperar datos; no puede añadirlos, suprimirlos ni modificarlos.
Sintaxis
@DbColumn( "ODBC" : caché ; origen-datos ; ID1-usuario : ID2-usuario ; contraseña1 : contraseña2 ; tabla ; columna : valores-nulos ; "Distinct" : ordenar )
Parámetros
"ODBC"
Consulte "Especificación del origen de datos".
Consulte "Especificación de los ID y de las contraseñas".
Consulte "Especificación de valores nulos".
Consulte "Especificación de la palabra clave Distinct" más adelante.
Consulte "Especificación del orden" más adelante.
valores-hallados
Consulte "Acceso a los valores hallados" en este mismo capítulo.
Especificación del origen de datos
El nombre del origen de datos puede contener un máximo de 32 caracteres alfanuméricos.
@DbLookup sólo puede acceder a aquellos orígenes de datos que se hayan registrado previamente en el archivo ODBC.INI (o en un registro similar para plataformas distintas de Windows™).
Especificación de los ID y de las contraseñas
Solo necesitará usar este parámetro si emplea un DBMS que requiere su uso.
En lugar de almacenar los ID en la fórmula de @DbColumn, puede reemplazarlos por cadenas vacías (""). Si el uso de un ID es obligatorio, el controlador ODBC se lo pedirá al usuario. Esto resulta útil cuando no se desea situar los ID en una fórmula a la que pueden tener acceso otros diseñadores, o bien cuando se desea que cada usuario acceda a los datos externos haciendo uso de su propio ID en lugar de crear archivos ID genéricos. Sin embargo, sí deberá incluir los ID y las contraseñas en las fórmulas que se ejecuten automáticamente (por ejemplo, los agentes), ya que éstas no solicitan esta información al usuario.
En cada sesión de una misma base de datos de Domino, sólo es necesario especificar una vez los ID y las contraseñas de usuario que son necesarios para acceder al origen de datos, siempre que la base de datos permanezca abierta. Si el usuario abre otra base de datos de Domino y ejecuta una fórmula que hace uso del mismo origen de datos, el controlador volverá a pedirle el ID y la contraseña.
Solo necesitará emplear las contraseñas si está usando los parámetros ID descritos anteriormente. Al igual que los ID, las contraseñas pueden almacenarse en la fórmula de @DbCommand o bien reemplazarse por cadenas vacías, en cuyo caso, el controlador ODBC se las pedirá al usuario. Si la contraseña de la base de datos es una cadena vacía, puede omitirla de la fórmula.
Por ejemplo, si va a especificar la contraseña completa, introduzca lo siguiente:
Si el DBMS lo permite, puede incluir el nombre del propietario de la tabla para evitar que se produzcan ambigüedades; use el formato "nombre-propietario.nombre-tabla". Asegúrese de que separa el nombre del propietario del nombre de la tabla mediante un punto. Por ejemplo:
"dbo.author"
Tabla también puede hacer referencia a una vista de la base de datos del DBMS cuyos datos se están utilizando.
Especificación de valores nulos
Normalmente, los valores nulos se ignoran y la lista resultante se acorta (del mismo modo que cuando se usa la opción "Discard", descrita más adelante).
Para controlar el modo en que se tratan los valores nulos, especifique una de las opciones siguientes detrás del parámetro columna, separada de éste por un signo de dos puntos:
Se han hallado valores nulos; se está cancelando la función @db
No se obtiene ningún dato junto con el mensaje.
Caution: NULL values discarded from @Db list.
Si su fórmula incluye un argumento de cadena para ordenar los datos, la lista de valores obtenidos como resultado será ordenada antes de reemplazar los valores nulos. Al ordenar los datos, Notes situará los valores nulos al principio de la lista. No los reemplazará hasta después de que estén todos ordenados. Esto puede dar como resultado una lista en la que hay algunos valores ordenados incorrectamente. Por ejemplo, si especifica "zzz" como valor de reemplazo, todos los valores "zzz" se situarán al principio de la lista, incluso si ha indicado que ésta debe encontrarse en orden ascendente.
Si se reemplazan uno o varios valores durante la ejecución de la fórmula que contiene @DbColumn, aparecerá este mensaje en la barra de estado:
Caution: NULL value replaced with user-defined value in @Db list
Por regla general, conviene asegurarse de que el valor de reemplazo indicado no coincidirá fácilmente con ninguno de los valores de la lista; por ejemplo, si la columna contiene texto, el valor de reemplazo podría ser "***"; de este modo, resultaría sencillo localizar los valores nulos en Lotus Domino.
El argumento de cadena Distinct es similar a la función @Unique de Lotus Domino; la diferencia estriba en que Distinct elimina los valores repetidos antes de obtener los datos. El uso de Distinct en lugar de @Unique tiene dos ventajas:
Especificación del orden
Si emplea el argumento de cadena Distinct descrito anteriormente, introduzca el argumento correspondiente al parámetro ordenar detrás de Distinct y sepárelos mediante un signo de dos puntos, como se indica en el ejemplo de sintaxis. El parámetro ordenar sirve para ordenar la lista de valores antes de incorporarla a Notes.
Nota Las palabras clave de ordenar no pueden emplearse con todos los controladores ODBC. Si intenta usar tanto "Ascending" como "Descending" en su fórmula, aparecerá un mensaje indicándole que ha usado un parámetro no válido.
Si el resultado son varios valores, se les dará formato de lista y se empleará el separador de valores múltiples especificado para el campo actual.
@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.
2 + (2 * número de entradas obtenidas) + tamaño total del texto de todas las entradas
Cada cadena de texto puede tener un máximo de 511 bytes; si se obtiene una única cadena de texto, ésta puede tener hasta 64 kB.
(10 * número de entradas obtenidas) + 6
NoExternalApps=1
cualquier fórmula que contenga la función @DbColumn quedará desactivada. El usuario no verá ningún mensaje de error; simplemente Notes no ejecutará la fórmula. Esto sólo se aplica a @DbColumn cuando esta función se emplea con ODBC.
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, @DbColumn le permite recuperar dinámicamente una lista de valores procedentes de una tabla de base de datos externa.
Esta función únicamente opera en aplicaciones de Web si el servidor remoto que alberga la tabla de la que se recuperan los datos se encuentra en el mismo equipo que el servidor Domino, lo que es muy infrecuente.
Equivalencias en otros lenguajes
Método GetValue de la clase ODBCResultSet de Lotus Connectors
Ejemplo Véase también