Limitar el alcance de una vista
Cuando tiene acceso a un origen de datos remoto, tendrá acceso a cantidades potencialmente masivas de datos. Puede limitar el alcance de los datos seleccionados en la vista únicamente a los registros que necesite en cada momento. Esto reduce el tráfico en la red y aumenta el rendimiento de su vista. Por ejemplo, si desea ver información acerca de los clientes de un determinado país y sus pedidos, mejorará el rendimiento si descarga en la vista sólo los registros correspondientes a ese país, en lugar de los de todos los clientes.
Un método que puede utilizar para limitar el alcance de su vista es agregar una cláusula WHERE a la instrucción SQL de su vista. Si deseara buscar los registros de los clientes de Suecia, podría crear esta cláusula SQL WHERE para su vista:
SELECT * FROM customer ;
WHERE customer.country = 'Sweden'
Este código limitará el alcance de su vista al descargar únicamente los registros correspondientes a los clientes de Suecia, pero también puede que sea necesaria la creación de una vista distinta para cada país, ya que el valor real de customer.country
para un país está codificado en la instrucción SELECT de su vista.
Crear una vista parametrizada
Puede limitar el alcance de una vista sin crear una vista distinta para cada subconjunto de registros si crea vistas parametrizadas. Una vista parametrizada crea una cláusula WHERE en la instrucción SQL SELECT de la vista que limita los registros descargados únicamente a aquellos que cumplen las condiciones de la cláusula WHERE que se creó con los valores proporcionados para el parámetro. Este valor se puede proporcionar en tiempo de ejecución o se puede transferir a la vista mediante programación.
En el caso del ejemplo anterior, puede crear una vista que le permita descargar los registros para cualquier país escribiendo simplemente el nombre del país al abrir la vista.
Para crear una vista parametrizada
En el Diseñador de vistas, elija Parámetros de vista en el menú Consulta.
–O bien–
Utilice el comando CREATE SQL VIEW con un símbolo “?” y un parámetro.
El parámetro que suministre se evalúa como expresión de Visual FoxPro y el valor se envía como parte de la instrucción SQL de la vista. Si hay errores en la evaluación, Visual FoxPro le pide el valor del parámetro. Por ejemplo, si tiene la tabla customer
de la base de datos Testdata en un servidor remoto, el código siguiente creará una vista remota parametrizada que limita la vista a aquellos clientes cuyo país coincida con el valor proporcionado para el parámetro ?cCountry
:
OPEN DATABASE testdata
CREATE SQL VIEW customer_remote_view ;
CONNECTION remote_01 ;
AS SELECT * FROM customer ;
WHERE customer.country = ?cCountry
Puede proporcionar un valor para ?cCountry
mediante programación cuando utilice la vista. Por ejemplo, podría escribir el código siguiente:
cCountry = 'Sweden'
USE Testdata!customer_remote_view IN 0
BROWSE
Visual FoxPro mostrará los registros de los clientes para las compañías suecas en la ventana Examinar de Customer_remote_view
.
Sugerencia Si el parámetro es una expresión, escriba la expresión del parámetro entre paréntesis. Esto permite que toda la expresión se evalúe como parte del parámetro.
Pedir al usuario que escriba un valor de parámetro
Si su parámetro no es una variable o una expresión, quizá desee pedir al usuario que suministre el valor del parámetro mediante la utilización de una cadena entre comillas como parámetro de la vista. Cuando cree un parámetro de vista con una cadena entre comillas después del símbolo “?”, Visual FoxPro no interpretará la cadena como una expresión. En su lugar, le pedirá que introduzca el valor del parámetro en tiempo de ejecución. Por ejemplo, el código siguiente crea una vista remota parametrizada que pide al usuario que suministre un valor para el parámetro ?'my customer id'
:
OPEN DATABASE testdata
CREATE SQL VIEW customer_remote_view ;
CONNECTION remote_01 ;
AS SELECT * FROM customer ;
WHERE customer.cust_id = ?'my customer id'
USE customer_remote_view
Cuando utilice la vista del ejemplo anterior aparecerá el cuadro de diálogo Parámetro de vista.
Cuando haya introducido un Id. de cliente válido, Visual FoxPro obtendrá el registro que coincide con ese Id. Si introduce el valor "ALFKI" en el ejemplo anterior y examina Customer_remote_view
, verá el registro del cliente en la ventana Examinar.
Mediante la utilización de una cadena entre comillas como parámetro de vista, se asegurará de que Visual FoxPro pedirá siempre al usuario el valor del parámetro.
Vea también
Mostrar los datos con las vistas | Abrir múltiples instancias de una vista | Crear consultas | Diseñador de vistas | CREATE SQL VIEW | Mostrar la estructura de una vista