Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP 1 Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Serv

29 downloads 167 Views 2MB Size

Recommend Stories


CURSO AVANZADO DE VISUAL FOXPRO
CURSO AVANZADO DE VISUAL FOXPRO Presentación Visual FoxPro es un lenguaje de programación muy utilizado y demandado por las empresas del sector aseg

INSTALACIÓN INDEPENDENTE DE SQL SERVER
Sistema Integral de Facturación Electrónica y Contabilidad sifec.mx Sistemas de Información en la Nube, S. A. de C. V. INSTALACIÓN INDEPENDENTE DE SQ

Servicios Profesionales de Formación en Visual Studio, Team System, y SQL Server
Valor añadido Danysoft | www.danysoft.com Servicios Profesionales de Formación en Visual Studio, Team System, y SQL Server. | Actualizado a Enero [20

Story Transcript

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

1

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Edición 1.0 Prohibida la reproducción total o parcial Sin nuestro consentimiento Derechos de copia reservados www.LibrosDigitales.NET

2

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

El modelo Cliente-Servidor Definición La tecnología Cliente-Servidor es el procesamiento cooperativo de la información por medio de un conjunto de procesadores, en el cual múltiples clientes, distribuidos geográficamente, solicitan requerimientos a uno o más servidores centrales. Desde el punto de vista funcional, se puede definir la computación Cliente-Servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en forma transparente aun en entornos multiplataforma. En el modelo cliente servidor, el cliente envía un mensaje solicitando un determinado servicio a un servidor, y este envía uno o varios mensajes con la respuesta. En un sistema distribuido cada máquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras. Además como veremos en el modelo de implementación, el concepto es utilizado en forma constante para varias funciones e implementado de distintas formas.

La idea es tratar a una computadora como un instrumento, que por sí sola pueda realizar muchas tareas, pero con la consideración de que realice aquellas que son mas adecuadas a sus características. Si esto se aplica tanto a clientes como servidores se entiende que la forma más estándar de aplicación y uso de sistemas clientes/servidores es mediante la explotación de las PC a través de interfaces gráficas de usuario; mientras que la administración de datos y su seguridad e integridad se deja a cargo de computadoras centrales tipo mainframe. Como se desprende de las definiciones anteriores, tanto clientes como servidores son entidades independientes que operan conjuntamente a través de una red para realizar una tarea. Pero para hacer la distinción respecto de otras formas de arquitecturas o software distribuidos, se presenta una lista de características que debieran cumplir los sistemas Cliente-Servidor: ü

Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados en la misma máquina o en máquinas diferentes distribuidas a lo largo de la red.

ü

Existe una clara distinción de funciones basada en el concepto de "servicio", que se establece entre clientes y servidores.

ü

La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando su acceso a recursos compartidos.

3

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

ü

Los clientes corresponden a procesos activos en cuanto a que son éstos lo que hacen peticiones de servicios a los servidores. Estos últimos tienen un carácter pasivo ya que esperan las peticiones de los clientes.

ü

No existe otra relación entre clientes y servidores que no sea la que se establece a través del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición y entrega de solicitudes de servicio.

ü

Las plataformas de software y hardware entre clientes y servidores son independientes. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas.

ü

El concepto de escalabilidad tanto horizontal como vertical es aplicable a cualquier sistema Cliente-Servidor. La escalabilidad horizontal permite agregar más estaciones de trabajo activas sin afectar significativamente el rendimiento. La escalabilidad vertical permite mejorar las características del servidor o agregar múltiples servidores.

4

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Componentes del modelo Cliente-Servidor Como se ha dicho, Cliente-Servidor es un modelo basado en la idea del servicio, en el que el cliente es un proceso consumidor de servicios y el servidor es un proceso proveedor de servicios. Además esta relación está establecida en función del intercambio de mensajes que es el único elemento de acoplamiento entre ambos. De estas líneas se desprenden los tres elementos fundamentales sobre los cuales se desarrollan e implantan los sistemas Cliente-Servidor: el proceso cliente que es quien inicia el diálogo, el proceso servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder intercambiar mensajes. Para entender en forma más ordenada y clara los conceptos y elementos involucrados en esta tecnología se puede aplicar una descomposición o arquitectura de niveles. Esta descomposición principalmente consiste en separar los elementos estructurales de esta tecnología en función de aspectos más funcionales de la misma: ü

Nivel de Presentación: Agrupa a todos los elementos asociados al componente Cliente.

ü

Nivel de Aplicación: Agrupa a todos los elementos asociados al componente Servidor.

ü

Nivel de comunicación: Agrupa a todos los elementos que hacen posible la comunicación entre los componentes Cliente y servidor.

ü

Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los datos.

ü

Este modelo de descomposición en niveles, como se verá más adelante, permite introducir más claramente la discusión del desarrollo de aplicaciones en arquitecturas de hardware y software en planos.

Cliente El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor, se lo conoce con el término front-end. Este normalmente maneja todas las funciones relacionadas con la manipulación y despliegue de datos, por lo que están desarrollados sobre plataformas que permiten construir interfaces gráficas de usuario (GUI), además de acceder a los servicios distribuidos en cualquier parte de la red. Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos: ü ü ü ü ü ü

Administrar la interfaz de usuario. Interactuar con el usuario. Procesar la lógica de la aplicación y hacer validaciones locales. Generar requerimientos de bases de datos. Recibir resultados del servidor. Formatear resultados.

5

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP Servidor Es el proceso encargado de atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. Al proceso servidor se lo conoce con el término back-end. El servidor normalmente maneja todas las funciones relacionadas con la mayoría de las reglas del negocio y los recursos de datos. Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes puntos: ü ü ü ü

Aceptar los requerimientos de bases de datos que hacen los clientes. Procesar requerimientos de bases de datos. Formatear datos para trasmitirlos a los clientes. Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de datos.

Middleware En su definición más simple, middleware es la interfaz que provee la conectividad entre aplicaciones clientes y aplicaciones servidoras, y entre aplicaciones y bases de datos. Es una capa de software que protege a los desarrolladores de tener que manejar detalles de bajo nivel de diferentes protocolos de comunicación, sistemas operativos y arquitecturas de bases de datos. Este tipo de interfaces incluyen API’s, PRC’s, Pipes, mensajería de red y accesos a bases de datos.

6

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Componentes del Software Toda aplicación está compuesta por las siguientes capas: Capa de Datos Es la parte compuesta por la Base de Datos, tablas y vistas Capa de Negocios La capa de las Reglas de Negocio o Lógica de Negocio, está compuesta por el conjunto de condiciones sobre la cual corre de la aplicación. Capa de Presentación Es la interfaz que usa el Cliente para acceder a la aplicación, está compuesta por los formularios, sistemas de menús, diálogos, cajas de herramienta. Las tres capas están relacionadas unas con otras, la capa de Presentación recibirá la petición del Cliente, se la envía a la capa de Negocios para que procese la petición, luego accede a la capa de Datos para generar un resultado.

J La distribución de estas capas en el Servidor o en el Cliente, dará origen a los distintos modelos que a continuación se describe.

7

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Clasificación de modelos Cliente-Servidor Uno de los aspectos claves para entender la tecnología Cliente-Servidor, y por lo tanto contar con la capacidad de proponer, promocionar y llevar a cabo soluciones de este tipo, es llegar a conocer la arquitectura de este modelo y los conceptos o ideas asociados al mismo. Más allá de entender los componentes cliente/middleware/servidor, es preciso analizar ciertas relaciones entre éstos, que pueden definir el tipo de solución que se ajusta de mejor forma a las estadísticas y restricciones acerca de los eventos y requerimientos de información que se obtuvieron en la etapa de análisis de un determinado proyecto. De hecho el analista o líder deberá conocer estos eventos/restricciones del negocio para, a partir de allí, hacer las consideraciones y estimaciones de la futura configuración, teniendo en cuenta aspectos como por ejemplo, la oportunidad de la información, tiempo de respuesta, tamaños de registros, tamaño de bases de datos, estimaciones del tráfico de red, distribución geográfica tanto de los procesos como los datos, etc. Una de las más comunes y discutidas distinciones entre las diferentes arquitecturas Cliente-Servidor se basan en la idea de planos (tier), la cual es una variación sobre la división o clasificación por tamaño de componentes (clientes grandes y servidores amplios). Esto se debe a que se trata de definir el modo en que las prestaciones funcionales de la aplicación serán asignadas, y en que proporción, tanto al cliente como al servidor. Dichas prestaciones se deben agrupar entre los tres componentes clásicos para Cliente-Servidor: interfaz de usuario, lógica de negocios y los datos compartidos, cada uno de los cuales corresponde a un plano. Dentro de esta categoría tenemos las aplicaciones en dos planos (two-tier), tres planos (three-tier) y multi planos (multi-tier).

Cliente-Servidor Dos Planos Esta estructura se caracteriza por la conexión directa entre el proceso cliente y un administrador de bases de datos. Dependiendo de donde se localice el grupo de tareas correspondientes a la lógica de negocios se pueden tener a su vez dos tipos distintos dentro de esta misma categoría: Cliente inteligente

8

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP En este esquema el cliente envía mensajes con solicitudes SQL al servidor de bases de datos y el resultado de cada instrucción SQL es devuelto por la red, no importando si son uno, diez, cien o mil registros. Es el mismo cliente quien debe procesar todos los registros que le fueron devueltos por el servidor de base de datos, según el requerimiento que él mismo hizo. Esto hace que este tipo de estructura se adecue a los requerimientos de aplicaciones orientadas a los sistemas de apoyo y gestión, pero resultan inadecuados para los sistemas críticos en que se requieran bajos tiempos de respuesta. Ventajas: ü

Presenta una estructura de desarrollo bastante simple por cuanto el programador típicamente maneja un único ambiente de desarrollo (es más simple respecto de Cliente-Servidor en tres planos, puesto que reduce una capa de programación, como se verá más adelante).

Desventajas: ü

La gran cantidad de información que viaja al cliente congestiona demasiado el tráfico de red, lo que se traduce en bajo rendimiento.

ü

Por su bajo rendimiento esta estructura tiene un bajo espectro de aplicación, limitándose a la construcción de sistemas no críticos.

Implementado con Procedimientos Almacenados

En este esquema el cliente envía llamadas a funciones que residen en la base de datos, y es ésta quien resuelve y procesa la totalidad de las instrucciones SQL agrupadas en la mencionada función.

9

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP Ventajas: ü

Presenta las mismas ventajas de una arquitectura dos planos con procedimientos almacenados, pero mejora considerablemente el rendimiento sobre ésta, dado que reduce el tráfico por la red al procesar los datos en la misma base de datos, haciendo viajar sólo el resultado final de un conjunto de instrucciones SQL.

Desventajas: ü

Si bien la complejidad de desarrollo se ve disminuida, se pierde flexibilidad y escalabilidad en las soluciones implantadas (especialmente respecto de ClienteServidor en tres planos, como se verá mas adelante).

ü

Obliga a basar el grueso de la aplicación en SQL extendido, propios del proveedor de la base de datos que se elija. Debiera considerarse que sí bien los procedimientos almacenados (stored procedures), los desencadenantes (triggers) y las reglas (constraint) son útiles, en rigor son ajenos al estándar de SQL: §

No existen dos implementaciones de proveedores iguales.

§

El lenguaje para la descripción de los procedimientos almacenados y probablemente su funcionalidad varía de un proveedor a otro. Lo que implica que los procedimientos almacenados no son totalmente exportables entre plataformas de distintos proveedores.

§

Se pierde la independencia entre el código de la aplicación (conocimiento y reglas del negocio) y los datos.

10

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Cliente-Servidor Tres Planos. Esta estructura se caracteriza por elaborar la aplicación en base a dos capas principales de software, más la capa correspondiente al servidor de base de datos. Al igual que en la arquitectura dos capas, y según las decisiones de diseño que se tomen, se puede balancear la carga de trabajo entre el proceso cliente y el nuevo proceso correspondiente al servidor de aplicación.

En este esquema el cliente envía mensajes directamente al servidor de aplicación el cual debe administrar y responder todas las solicitudes. Es el servidor, dependiendo del tipo de solicitud, quien accede y se conecta con la base de datos. Ventajas: ü

Reduce el tráfico de información en la red por lo que mejora el rendimiento de los sistemas (especialmente respecto de la estructura en dos planos).

ü

Brinda una mayor flexibilidad de desaarrollo y de elección de plataformas sobre la cual montar las aplicaciones.

ü

Provee escalabilidad horizontal y vertical.

ü

Se mantiene la independencia entre el código de la aplicación (reglas y conocimiento del negocio) y los datos, mejorando la portabilidad de las aplicaciones.

ü

Los lenguajes sobre los cuales se desarrollan las aplicaciones son estándares lo que hace más exportables las aplicaciones entre plataformas.

ü

Dado que mejora el rendimiento al optimizar el flujo de información entre componentes, permite construir sistemas críticos de alta confiabilidad.

11

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

ü

El mismo hecho de localizar las reglas del negocio en su propio ambiente, en vez de distribuirlos en la capa de interfaz de usuario, permite reducir el impacto de hacer mantenimiento, cambios urgentes de última hora o mejoras al sistema.

ü

Disminuye el número de usuarios (licencias) conectados a la base de datos.

Desventajas: ü

Dependiendo de la elección de los lenguajes de desarrollo, puede presentar mayor complejidad en comparación con Cliente-Servidor dos planos.

ü

Existen pocos proveedores de herramientas integradas de desarrollo con relación al modelo Cliente-Servidor dos planos, y normalmente son de alto costo.

ü

Debido a estas desventajas es aquí la mayor importancia del Generador (aplicación creada en el presente trabajo).

12

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Implementando Cliente-Servidor Una de las caracteristicas potenciales de Visual FoxPro es la sencillez del lenguaje. Podemos implementar Cliente Servidor de las siguiente formas: Mediante el uso de Vistas remotas Esta es la herramienta apropiada para implementar Cliente Inteligente. En Visual FoxPro se dispone de una Asistente denominado Upsizing, mediante el cual podemos migrar una aplicación Monolitica a Cliente Inteligente, durante el procedimiento se generan Vistas Remotas. De forma similar a las Vistas Locales, se dispone de un Diseñador para Vistas Remotas, mediante el cual basandose en un DSN podemos acceder a cualquier Base de Datos, ya sea para consultar o realizar actualizaciones. Usando el Paso a través de SQL El Paso a través es la alternativa para la solucion de Servidor Inteligente, basandose en un DSN, podemos interactuar con los objetos del Servidor: Tablas, Vistas, Procedimientos Almacenados, etc. A través de ADO OLEBD Representa la tecnologia novedosa de Microsoft que ofrece conectividad total a bases de datos de arquitectura abierta, de un modo directo, por tanto supone un modo mas rápido y seguro. Todas las tecnicas anteriores se detallarán a continuación.

J En ésta primera entrega nos ocuparemos del desarrollo de Vistas Remotas, las siguientes técnicas estarán disponibles en la siguiente edición de éste libro.

13

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Implementando Cliente Inteligente Upzising a SQL Server A diferencia de una aplicación multiusuaria basado en un sistema operativo de escritorio, ésta queda restringida a un número limitado de usuarios y no ofrece mayor seguridad a los datos. Para implementar Cliente-Servidor, requerirá un servidor basado en Windows NT Server, un administrador de Base de Datos para el Servidor como SQL Server. El Cliente puede estar basado en alguna versión de Windows. Implementar una aplicación Cliente-Servidor, supone crear la Base de Datos en el Servidor, establecer la conexión desde el Cliente y desarrollar el programa a ser usado en las PC Cliente. Visual FoxPro incluye una herramienta mediante la cual puede migrar una aplicación de escritorio al entorno Cliente-Servidor, tal procedimiento se conoce como Upsizing a SQL Server. Mediante este procedimiento fácilmente se migra la Base de Datos al Servidor, las Vistas Locales automáticamente se convertirán en Vistas remotas, asi mismo por cada una de las tablas se generán Vistas Remotas. Una aplicación optima Cliente-Servidor supone administrar cuidadosamente el trafico de acceso al Servidor de modo que se evite la congestión, hecho el Upsizing el siguiente procedimiento será la de optimizar la aplicación, en algunos casos reemplazando el acceso a los datos mediante Vistas remotas por otros métodos más óptimos como el Paso a través de SQL o a través de OLEDB.

J El uso de vistas locales en el diseño de una aplicación facilita el proceso de Upsizing, una vez concluida, no tendrá que modificar absolutamente nada.

14

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Preparando el Servidor Para realizar esta tarea necesitará derechos de acceso al Servidor como Administrador, por razones didácticas asumiremos que el Administrador tiene por Id de inicio de sesión “sa” y sin contraseña. En el Servidor se debe reservar el espacio para los objetos de la Base de Datos. Este espacio se llama Dispositivo, por cada Base de Datos se creará dos dispositivos:

ü

Dispositivo de Base de Datos, es un archivo con la extensión MDF, contiene las tablas de datos, vistas, procedimientos almacenados, desencadenantes, etc.

ü

Dispositivo para el Registro de Transacciones, también es un archivo con la extensión LDF, aquí se guarda los cambios que se realiza en una Base de Datos de manera automática.

Veamos el procedimiento para crear los Dispositivos: 1. SQL Server, incorpora una herramienta de Administrador Corporativo o Enterprise Manager.

administración

llamada

2. Inicie el Administrador Corporativo, verifique que el Servidor este registrado y activo, expanda sus opciones y sitúese en Bases de Datos. 3. Haga click en el botón derecho del mouse sobre la opción Bases de Datos y elija la opción Nueva Base de Datos.

15

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

4. Asigne un nombre a la Base de Datos, por ejemplo svrPCVentas, así mismo indique un tamaño para el Dispositivo, por ejemplo 10 Mb.

5. En el mismo dialogo en la pagina Registro de Transacciones, especifique el tamaño, que debe ser entre el 25 a 30% del tamaño del Dispositivo de Base de Datos, en nuestro caso unos 3 Mb.

16

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Una vez que pulse el botón Aceptar se habrá creado los archivos correspondientes para estos dispositivos.

J El tamaño de la Base de Datos es referencial, es decir si al cabo de un par de meses la Base de Datos supera el tamaño indicado automáticamente crecerá dependiendo si en el diálogo Propiedades del dispositivo, indicó el crecimiento en Megabytes o en Porcentaje .

17

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Preparando el Cliente Preparar el Cliente supone preparar la Aplicación. Tome en cuenta las siguientes consideraciones: ü

La condición para que una Aplicación migre a Cliente-Servidor sin dificultades es que el acceso a la Base de Datos este basada en Vistas Locales.

ü

Para optimizar el acceso a la Base de Datos, parametrice las Vistas.

La aplicación a migrar, corresponde al desarrollado en el libro Fundamentos de programación en Visual FoxPro, la cual funciona perfectamente en una red de recursos compartidos Windows:

J Si su aplicación accede directamente a las tablas, no se preocupe, tambien puede migrar a Cliente Servidor, solo que finalizado el proceso deberá realizar algunos ajustes.

18

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Estableciendo la conexión al Servidor Para acceder a una fuente de datos externa podemos usar ODBC o algún controlador interno (OLEDB). Windows provee de un conjunto de controladores mediante los cuales podemos acceder a fuentes de datos foráneas de tipo relacional, ya sea para actualización o consulta, operación que se realiza desde el Administrador ODBC. El procedimiento consiste en crear un DSN (Data Source Name) u Origen de Datos. 1. Diríjase al Panel de Control y haga doble click en el icono ODBC 32 Bits

Puede crear tres tipos de DSN: ü DSN de usuario, podrá ser usado solo por el usuario que lo creó ü DSN de sistema podrá ser usado por cualquier usuario de esa PC ü DSN de archivo generará un archivo el que luego podrá trasladarse como archivo con extensión DSN a otra PC. En nuestro caso definiremos un DSN de sistema.

2. Haga click en el botón Agregar. 3. En el dialogo Crear nuevo origen de datos, ubique el controlador SQL Server.

19

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

4. En el dialogo siguiente asigne un nombre al DSN: dsnPCVentas e identifique el Servidor (EduTec en este caso).

5. A continuación señale que el acceso al Servidor de datos se hará usando la autenticación SQL Server, indique el Id de inicio de sesión: “sa” y sin contraseña.

20

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

6. Ahora ubique la Base de Datos svrPCVentas.

7. Ya para terminar se mostrará un diálogo señalando que el procedimiento ha finalizado, conviene que haga click en el botón Probar origen de datos, si se muestra el mensaje “Las pruebas se han completado con éxito”, todo habrá terminado.

21

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

J Un DSN de Usuario, puede ser usado solo por el usuario que lo ha definido, el DSN de Sistema, está disponible para cualquier usuario, el DSN de Archivo es transportable.

22

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Efectuando el Upsizing A veces el proceso de upsizing es interrumpido por un problema de red, del servidor o por la aplicación, dado que este proceso efectúa cambios irreversibles en la Aplicación, conviene mantener una copia de la Aplicación. Dada la recomendación, iniciemos con el Upsizing. 1. Abra la Base de Datos PCVentas

2. En el menú Herramientas, ubique la opción Asistentes, luego seleccione la opción Upsizing. 3. Visual FoxPro, presenta dos Asistentes para Upsizing, una hacia SQL Server y otra hacia Oracle. En nuestro caso elegiremos Asistente para upsizing SQL Server. 4. En el primer paso, seleccione o confirme la Base de datos que migrará a SQL Server: PCVentas.DBC

23

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

5. Luego ubique el DSN que se usará para conectarse al Servidor: dsnPCVentas

6. A continuación señale las tablas que migraran al Servidor.

24

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

7. En el dialogo siguiente verifique que los tipos de campo que el asistente propone para las tablas SQL Server, sean los adecuados.

8. En el quinto paso confirme el Dispositivo de Base de Datos creado en SQL Server: svrPCVentas

25

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

9. Revise los atributos que tendrán las tablas en el Servidor, asi mismo indique los cambios que se realizarán en la Aplicación, por ejemplo si por cada Vista Local se creará una Remota, si por cada tabla DBF se obtendrá una Vista Remota.

10. Por ultimo haga click en el botón Finalizar y ejecute la aplicación, está funcionando en Cliente-Servidor.

J En caso ocurriera un error durante el proceso y no hubiera concluido satisfactoriamente el Upsizing, borre la aplicación y los objetos generados en el Servidor, corrija el error, e inicie nuevamente la operación. Por esa razón al principio se le recomendó mantener una copia de la Aplicación.

26

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Luego del Upsizing En el servidor se habrá creado la estructura de las tablas, para revisar el contenido de ellas diríjase al Administrador Corporativo, haga clic derecho sobre la Base de Datos SvrPCVentasy en el menú emergente elija Refrescar o en su caso pulse F5.

Puede inspeccionar la estructura de las tablas, expandiendo la Base de Datos y en la sección Tablas, seleccione una tabla y haga doble click en él.

27

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP Otra forma es mediante el Analizador de Consultas, para iniciarlo en el Administrador Corporativo vaya al menú Herramientas y elija la opción Analizador de Consultas.

Antes de efectuar pruebas, seleccione la Base de Datos a usar en la lista de la parte superior derecha. El Analizador de Consultas esta dividido en dos partes, en la parte superior puede anotar instrucciones SQL, el resultado se mostrará en la parte inferior, por ejemplo pruebe: SELECT * FROM Articulo

Por el lado del Cliente en la Base de Datos PCVentas se habrá creado un conjunto de Vistas Remotas, las tablas que en ella figura ya no serán necesarias, así que puede removerlas.

28

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Optimizando la Aplicación Una forma de aliviar el tráfico en la red es minimizando la cantidad de datos que deba viajar a través de él. Las Vistas Remotas recogen los datos del Servidor, para recién ser procesadas en el Cliente, siendo por esta razón no son tan adecuadas. El método adecuado de optimización es mediante la implementación de un programa que permita resumir los datos necesarios en el Servidor para ser enviados al Cliente, estos programas son los llamados Procedimientos Almacenados, como ya se mencionó residen en el Servidor.

29

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Implementando Servidor Inteligente Procedimientos Almacenados En un modelo multicapa, conviene que ciertas acciones deban realizarse en el Servidor, las ligadas a datos. El Servidor manipula los datos actuales, que envuelve búsquedas de registros, añadir, actualizar y borrar registros. Mientras que el cliente controla la lógica, diciendo al Servidor qué hacer y en qué orden lo debe de hacer. Un Procedimiento Almacenado es un precompilado conjunto de órdenes SQL. Debido a que están precompiladas se gana en optimización a la hora de usarla. Visual FoxPro le dice al Servidor qué Procedimiento Almacenado debe ejecutar pero no sabe qué es lo que hay en cada uno de los Procedimientos Almacenados. Visual FoxPro solo sabe, y de hecho, sólo necesita saber, si los Procedimientos Almacenados funcionan. El uso de Procedimientos Almacenados en el Servidor para acciones que se realizan frecuentemente mejora radicalmente la velocidad de los procesos. Una vez que el Procedimiento Almacenado ha sido satisfactoriamente creado en el servidor, el Servidor ya no tiene que comprobar la sintaxis y compilar antes de ejecutar, lo cual enlentece la Aplicación.

30

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Implementación Para crear procedimientos almacenados, siga los pasos siguientes: 1. Usando el Administrador Corporativo, expanda la Base de Datos SvrPCVentas y haga click derecho en Procedimientos Almacenados, luego seleccione Nuevo.

2. A continuación defina el Procedimiento Almacenado:

CREATE PROCEDURE TotalVentas AS SELECT mes = DATENAME(mm, Fecha), Total = SUM(PreVenta*Cantidad) FROM Factura, Detalle WHERE Facturas.IdFactura = Detalle.IdFactura GROUP BY DATENAME(mm, Fecha)

31

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP 3. Puede hacer click en el botón Comprobar la sintaxis

4. Finalmente haga click en Aceptar para grabarlo

32

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Uso de Parámetros Los Parámetros son el medio por el cual se enviará datos del Cliente al Procedimiento Almacenado o viceversa. Parámetros de entrada Crearemos un Procedimiento que nos permita calcular las comisiones de un vendedor en un determinado mes. Usaremos un parámetro de entrada: el mes a consultar, los parámetros deben estar antepuestos del símbolo @ seguido del nombre del parámetro y del tipo de parámetro.

CREATE PROCEDURE spComision @Mes SmallInt AS SELECT Vendedor.NomVendedor, Comision = SUM(PrecVenta*Cantidad) * 0.10 FROM Detalle, Vendedor WHERE Factura.IdFactura = Detalle.IdFactura AND Factura.IdVendedor = Vendedor.IdVendedor AND DATEPART(mm,Fecha) = @Mes GROUP BY Vendedor.NomVendedor

Parámetros de salida Se usará para recuperar un dato proveniente del Servidor, un parámetro de salida se define anteponiéndole el símbolo @ seguido del nombre del parámetro, del tipo de parámetro y el término OUTPUT. Por ejemplo vamos a obtener el total de las ventas realizadas.

CREATE PROCEDURE spVentasAnno @TotVen Int OUTPUT AS SELECT @TotVen = SUM(PreVenta*Cantidad) FROM Detalle

33

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP Lo usual es usar parámetros de entrada y salida, un ejemplo muy simple seria la de sumar dos números y recoger el resultado:

CREATE PROCEDURE spSuma @Num1 Int, @Num2 Int, @Rpta Int OUTPUT AS SELECT @Rpta = @Num1 + @Num2

A continuación se expone las distintas técnicas que se puede usar para acceder a los objetos del Servidor desde el Cliente.

J Las consideraciones para implementar Procedimientos Almacenados, el manejo de Transacciones, uso de Vistas, Desencadenantes se analizará en la próxima entrega.

34

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Vistas Remotas A diferencias de las Vistas Locales, las Vistas Remotas toman como origen de datos una Fuente de Datos externa a la cual se accede mediante controladores ODBC. Ventajas ü

La principal ventaja radica en la simplicidad de su creacion.

ü

Mediante la opcion Criterios de Actualizacion, facilmente puede actualizar la fuente de datos foranea.

ü

Todas las especificaciones de la Vista se guarda en la Base de Datos de Visual FoxPro, facilitando el diseño de informes y formularios puesto que podra incluirlos en el Entorno de Datos.

Desventajas ü

El resultado generador por una Vista puede resultar mas lento que las otras tecnicas.

ü

Las Vistas Remotas no puede ejecutar objetos distintos a las tablas como los Procedimientos Almacenados y Consultas del Servidor.

35

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Un ejemplo Veamos un ejemplo de Vista Remota, obtendremos los datos de un determinado Cliente 1. Sobre la Base de Datos PCVentas haga click derecho y señale Nueva Vista Remota.

2. Seleccione el DSN dsnPcVentas 3. Seleccione la tabla Clientes

4. Será necesario definir un parámetro de tipo carácter para el código del Cliente, al que llamaremos codCliente

36

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP 5. A continuación establezca el filtro

6. Establezca las propiedades de Actualización

7. Proporcione un nombre a la vista, por ejemplo: vrCliente 8. Para realizar una prueba, anote:

CodCliente = “C13” USE Farmacia!vrCliente BROWSE

9. Deberá mostrarse los datos del cliente C13

37

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

J Respecto al diseño de formularios, deberá tener en cuenta las mismas consideraciones señaladas en el uso de Vistas Locales, puede revisar dicho teme en nuestro libro Fundamentos de programación en Visual FoxPro, www.LibrosDigitales.NET

Cómo actualizo la tabla remota? Puede forzar la actualización de datos usando la función TableUpdate(.T.) o con una órden USE.

L Si usará funciones en el diseño de sus Vistas Remotas, deberá usar las correspondientes en SQL Server.

El cuadro siguiente muestra las funciones SQL Server homólogas a las de Visual FoxPro: En Visual FoxPro .T. .F. ASC() AT() SUBSTR() CHR() CTOD() DTOC() CTOT() TTOC() TTOD() DTOT() DTOR() RTOD() MTON() NTOM() DATE() DATETIME() DAY() MONTH() YEAR() DOW() CDOW() CMONTH() HOUR() MINUTE()

En SQL Server 1 0 ASCII() CHARINDEX() SUBSTRING() CHAR() CONVERT(datetime, …) CONVERT(varchar, …) CONVERT(datetime, …) CONVERT(char, …) CONVERT(datetime, …) CONVERT(datetime, …) RADIANS() DEGREES() CONVERT(money, …) CONVERT(float, …) GETDATE() GETDATE() DATEPART(dd,…) DATEPART(mm,…) DATEPART(yy,…) DATEPART(dw,…) DATENAME(dw,…) DATENAME(mm,…) DATEPART(hh,…) DATEPART(mi,…)

38

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Paso a través de SQL Este técnica proporciona al Desarrollador un modo de acceso mas directo al Servidor. Ventajas ü

La recuperación de datos es más rápido

ü

Puede usar cualquier orden nativa del Servidor SQL

ü

Se puede enviar al Servidor varias ordenes y recibir varios resultados a través de una sola conexión

ü

Se tiene mayor control sobre las Transacciones remotas

Desventajas ü

El resultado no puede incluirse en el Entorno de Datos como las Vistas.

ü

El resultado generado es de solo lectura, la actualizacion debe realizarse en base a una instrucción SQL diferente.

39

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Conectándose al Servidor Este metodo hace uso de un DSN, asumiremos el creado al principio del capitulo: dsnPcVentas La función que permite definir una conexión se llama SQLCONNECT(), ésta función devuelve un número. Si el número es –1 es por que no se logro establecer la conexión satisfactoriamente, caso contrario el numero generado identificará la conexión. n = SQLCONNECT( dsn, IdUsuario, Contraseña) Por ejemplo:

n = SQLCONNECT( “dsnPcVentas”, “sa”, “”)

Ahora verificamos el valor devuelto:

? n

Si el valor devuelto es 2, indica que la conexión se realizó satisfactoriamente, a la conexión se le indentificará mediante el número dos.

40

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Desconectándonos del Servidor Usemos una conexión para realizar todas nuestra operaciones con el Servidor, en el momento que no sea necesario puede remover la conexión mediante la función: SQLDISCONNECT(Conexión) Por ejemplo:

SQLDISCONNECT(n)

Ejecución de sentencias SQL Para acceder a las tablas y realizar operaciones con ellas asi como ejecutar los Procedimientos Almacenados, usaremos la funcion SQLEXEC(), cuya sintaxis es la siguiente: SQLEXEC(Conexión, OrdenSQL, cursor) Se generará un Cursor solo cuando la orden SQL es una instrucción SELECT. Por ejemplo para acceder a la tabla Cliente podemos usar:

SQLEXEC(n, “SELECT * FROM Cliente”, “cCliente”) SELECT cCliente BROWSE

Tambien podemos parametrizar una consulta, definimos el parámetro:

codCliente = “C01” cSQL = “SELECT * FROM Cliente WHERE IdCliente = ?codCliente” SQLEXEC(n, cSQL, “cCliente”) SELECT cCliente BROWSE

41

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP Si desea actualizar el telefono del cliente con Id “C01”, anotariamos:

cSQL = “UPDATE Cliente SET TelCliente=‘C01’ WHERE IdCliente=‘C01’ ” SQLEXEC(n, cSQL, “cCliente”)

42

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Ejecución de Procedimientos Almacenados La función SQLEXEC() se puede usar para enviar no solo órdenes SQL tales como Insert y Update, sino también puede usar para decir a SQL Server que ejecute un procedimiento almacenado. Para ejecutar un Procedimiento Almacenado se usa la orden T-SQL: EXEC ProcAlm @parámetro = valor Por ejemplo para ejecutar el procedimiento almacenado spTotalVentas:

SQLEXEC(n,”EXEC spTotalVentas”)

43

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP Procedimientos almacenados con parámetros En el caso de procedimientos almacenados que presenten parámetros tiene dos opciones: Para el caso del procedimiento spComision que tiene un parametro de entrada:

SQLEXEC(n,”EXEC spComision @Mes=3”)

Puede que le resulte más cómodo usar la otra forma, al menos cuando se presenta parámetros de salida, veamos el resto de casos:

* Se define una valor inicial para nTotal nTotal = 0 SQLEXEC(n,”{CALL spVentasAnno(?@nTotal)}”) * Recibimos el resultado en la misma variable ? nTotal

Para el caso de la suma de dos números:

nSuma = 0 X = 7 Y = 5 SQLEXEC(n,”{CALL spSuma(X, Y,?@nSuma)}”) ? nSuma

J Como ve el acceso al servidor es sumamente sencillo, la integración las técnicas y consideraciones en el desarrollo será para la siguiente entrega, recuerde que sus opiniones y sugerencias son muy importantes para nosotros, www.LibrosDigitales.NET

44

Aplicaciones Cliente-Servidor e Internet con Visual FoxPro, SQL Server y ASP

Próxima Entrega

Edición 1.1 Dentro de una semana Prohibida la reproducción total o parcial Sin nuestro consentimiento Derechos de copia reservados www.LibrosDigitales.NET

45

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.