Compartir a través de


Hacer referencia a múltiples bases de datos

En un sistema es posible disponer de múltiples bases de datos de Visual FoxPro para satisfacer las necesidades organizativas de un entorno multiusuario. El uso de múltiples bases de datos ofrece las siguientes ventajas:

  • Controlan el acceso de usuarios a un subconjunto de tablas del sistema global.
  • Organizan los datos para satisfacer de forma eficaz las necesidades de información de varios grupos que usan el sistema.
  • Permiten el uso exclusivo de un subconjunto de tablas para crear vistas locales y remotas en tiempo de ejecución.

Por ejemplo, es posible que tenga una base de datos de ventas que guarda información de ventas usada principalmente por el equipo de ventas que trabaja con clientes y otra base de datos que guarda información de inventario usada principalmente por los compradores que trabajan con los proveedores. A veces las necesidades de información de estos grupos se solapan. Estas bases de datos se pueden abrir simultáneamente y se puede tener acceso a las mismas como se desee, pero contendrán tipos de información completamente diferentes.

Múltiples bases de datos pueden agregar flexibilidad a su sistema

Puede usar múltiples bases de datos abriendo más de una base de datos simultáneamente o estableciendo referencias en una base de datos cerrada. Cuando están abiertas varias bases de datos, puede establecer la base de datos actual y seleccionar tablas de ella.

Abrir más de una base de datos

Cuando hay abierta una base de datos, las tablas y las relaciones entre ellas están controladas por la información almacenada en la base de datos abierta. Puede tener abierta más de una base de datos a la vez. Por ejemplo, puede utilizar múltiples bases de datos abiertas al ejecutar varias aplicaciones, cada una basada en una base de datos distinta. También puede ser conveniente abrir varias bases de datos para utilizar información (como por ejemplo controles personalizados) almacenada en una base de datos distinta de la que utiliza la aplicación.

Para abrir más de una base de datos

Al abrir una nueva base de datos no se cierran las que se hayan abierto previamente. Las bases de datos abiertas continuarán en este estado y la última en abrirse pasará a ser la base de datos activa.

Establecer la base de datos activa

Al abrir varias bases de datos, Visual FoxPro establece como activa la abierta en último lugar. De forma predeterminada, todas las tablas u objetos que cree o agregue formarán parte de la base de datos activa. Los comandos y funciones que manipulan bases de datos abiertas, como ADD TABLE y DBC( ), se aplican también a la base de datos actual.

Puede elegir una base de datos distinta y establecerla como activa mediante la interfaz o mediante el comando SET DATABASE.

Para establecer la base de datos activa

  • En la barra de herramientas estándar, seleccione una base de datos en el cuadro Bases de datos.

    –O bien–

  • Utilice el comando SET DATABASE.

Por ejemplo, el código siguiente abre tres bases de datos, establece la primera como activa y luego utiliza la función DBC( ) para mostrar el nombre de la base de datos activa:

OPEN DATABASE testdata
OPEN DATABASE tastrade
OPEN DATABASE sample
SET DATABASE TO testdata
? DBC( )

Sugerencia   Visual FoxPro puede abrir una o más bases de datos automáticamente al ejecutar una consulta o un formulario que requiera que esas bases de datos se encuentren abiertas. Para asegurarse de que utiliza la base de datos correcta, establezca la base de datos activa explícitamente antes de ejecutar comandos que operen sobre la base de datos activa.

Seleccionar tablas de la base de datos activa

Para elegir en una lista con las tablas de la base de datos activa, puede utilizar el comando USE.

Para elegir una tabla de la base de datos activa

  • Ejecute el comando USE con el símbolo "?".

    Aparecerá el cuadro de diálogo Usar en el que puede seleccionar la tabla que desea abrir.

Por ejemplo, el código siguiente abre la base de datos sales y solicita que se seleccione una de las tablas que contiene.

OPEN DATABASE SALES
USE ?

Si desea seleccionar una tabla no asociada a la base de datos abierta, podrá elegir "Otras" en el cuadro de diálogo Usar.

Cerrar una base de datos

Puede cerrar una base de datos abierta mediante el Administrador de proyectos o mediante el comando CLOSE DATABASE.

Para cerrar una base de datos

Por ejemplo, el código siguiente cierra la base de datos testdata:

SET DATABASE TO testdata
CLOSE DATABASE

Ambas opciones cierran automáticamente la base de datos. También puede cerrar bases de datos y todos los demás objetos abiertos con la cláusula ALL del comando CLOSE.

La ejecución del comando CLOSE DATABASE desde la ventana Comandos no cerrará las bases de datos que se hayan abierto de las formas siguientes:

  • Con el Administrador de proyectos al expandir el esquema para ver el contenido de una base de datos.
  • Con un formulario que se ejecute en su propia sesión de datos.

En estas circunstancias, la base de datos permanecerá abierta hasta que el Administrador de proyectos la cierre o hasta que se cierre el formulario que la utiliza.

Resolución de alcance

Visual FoxPro utiliza la base de datos activa como alcance principal para los objetos con nombre, como las tablas. Cuando una base de datos está abierta, Visual FoxPro busca primero en ella los objetos que se soliciten, como pueden ser tablas, vistas, conexiones, etc. Si el objeto no se encuentra en la base de datos, Visual FoxPro lo buscará en la ruta de búsqueda predeterminada.

Por ejemplo, si la tabla customer está asociada a la base de datos sales, Visual FoxPro encontrará siempre la tabla customer de la base de datos al ejecutar los comandos siguientes:

OPEN DATABASE SALES
ADD TABLE F:\SOURCE\CUSTOMER.DBF
USE CUSTOMER

Si ejecuta el comando siguiente, Visual FoxPro buscará la tabla products comenzando por la base de datos activa:

USE PRODUCTS

Si products no se encuentra en la base de datos activa, Visual FoxPro intentará buscar fuera de ella en la ruta de búsqueda predeterminada.

Nota   Puede especificar la ruta de acceso completa de una tabla si desea tener acceso a la misma desde dentro o desde fuera de una base de datos; por ejemplo, si prevé un cambio en la ubicación de la tabla. Sin embargo, el rendimiento es mejor cuando sólo se hace referencia al nombre de la tabla, ya que en Visual FoxPro es más rápido el acceso a los nombres de tablas de base de datos que a los nombres especificados con la ruta de acceso completa.

Vea también

Administrar una base de datos | Controlar errores de bases de datos | Validar una base de datos | Administrador de proyectos | OPEN DATABASE | SET DATABASE | USE | CLOSE | Crear bases de datos | Trabajar con una base de datos