Si lo que buscás es mostrar las relaciones existentes en la base de datos, te puede servir la función ADBOBJECTS()
Sitúa los nombres de conexiones con nombre, relaciones, tablas o vistas SQL de la base de datos actual en una matriz de variables de memoria.
Sintaxis
ADBOBJECTS(NombreMatriz, cValor)
Tipos devueltos
Numeric
Argumentos
NombreMatriz Especifica el nombre de la matriz en la que se sitúan los nombres. Si no existe la matriz especificada, Visual FoxPro la creará automáticamente. Si existe y no es lo bastante grande para dar cabida a todos los nombres, Visual FoxPro aumentará automáticamente el tamaño. Si es más grande de lo necesario, Visual FoxPro la truncará. Si existe y ADBOBJECTS( ) devuelve 0 porque no encuentra ningún nombre, permanecerá sin cambios. Si l matriz no existe y ADBOBJECTS( ) devuelve 0, la matriz no se creará.
Cuando especifique CONNECTION, TABLE o VIEW para cValor, se crea una matriz unidimensional. Cada fila de la matriz unidimensional contiene el nombre de una conexión, tabla o vista de la base de datos.
Cuando se especifica RELATION para cValor se crea una matriz bidimensional. Cada fila de la matriz bidimiensional corresponde a una relación de la base de datos. La primera columna de una fila de matriz contiene el nombre de la tabla secundaria, y la columna secundaria de una fila de matriz contiene el nombre de la tabla principal. La tercera columna contiene el nombre de la etiqueta del índice para la tabla secundaria, y la cuarta columna contiene el nombre de la etiqueta del índice para la tabla principal.
La quinta columna de una fila de matriz contiene información de integridad referencial. Esta columna está vacía si la relación no tiene reglas de integridad referencial. Si la relación no tiene reglas de integridad referencial la columna contiene caracteres que corresponden al tipo de reglas de integridad referencial para actualizaciones, eliminaciones e inserciones.
El primer carácter indica el tipo de regla de actualización, el segundo carácter indica el tipo de regla de eliminación y el tercero indica el tipo de regla de inserción.
Los posibles valores para actualizaciones y eliminaciones son "C" para cascada, "R" para restringir e "I" para ignorar. Los valores posibles para inserciones son "R" para restringir e "I" para ignorar. Por ejemplo, si una relación tiene actualizaciones en cascada, eliminaciones restringidas e ignora las reglas de integridad referencial de inserción, la columna contendrá "CRI".
cValor Especifica los nombres que se sitúan en una matriz de variables de memoria. La tabla siguiente indica los valores para cValor y los nombres correspondientes situados en la matriz:
cValor Nombres
CONNECTION Nombres de conexión
RELATION Relaciones de tabla
TABLE Nombres de tabla
VIEW Nombres de vista
El valor de CONNECTION, RELATION, TABLE y VIEW no se puede abreviar.
Comentarios
Cuando se emite ADBOBJECTS( ) debe haber una base de datos abierta y actual; de lo contrario, FoxPro generará un mensaje de error.
La base de datos puede abrir con OPEN DATABASE TuBase
y se activa con SET DATABASE
SET DATABASE especifica la base de datos actual.
Sintaxis
SET DATABASE TO [NombreBaseDatos]
Argumentos
NombreBaseDatos Especifica el nombre de una base de datos abierta que se va a convertir en la base de datos actual. Si omite NombreBaseDatos, ninguna base de datos abierta se convertirá en la base de datos actual.
Comentarios
Es posible abrir muchas bases de datos al mismo tiempo, pero sólo una puede ser la base de datos actual. Los comandos y las funciones que manipulan las bases de datos abiertas, como ADD TABLE y DBC( ), funcionan en la base de datos actual.
La base de datos actual también puede especificarse eligiendo una base de datos abierta en la lista desplegable “Base de datos” de la barra de herramientas Estándar.
Observe que Visual FoxPro puede abrir bases de datos automáticamente cuando se ejecuta una consulta o un Form.
SET DATABASE tiene como alcance la sesión actual de datos.