accediendo a datos de vfp 9.0 desde la web con el proveedor ole db de vfp 9

13
Accediendo a datos de VFP 9.0 desde la W DB de VFP 9.0 Por Luis María Guayán Descargar ejemplos de este artículo (6 KB). Contenido Introducción ¿Qué necesitamos? Algunos conceptos previos Nuestra primer página Utilizando procedimientos almacenados Modificando los datos de las tablas Para tener en cuenta Conclusión Introducción A partir de Visual FoxPro 9.0 tenemos una nueva opción para publicar los datos de nuestras tablas en la Web. Esta o terceras partes, ni desarrollar objetos COM con Visual FoxPro. En este artículo veremos cómo desarrollar esta opción el uso de una nueva función incluída en Visual FoxPro 9.0 y el nuevo Proveedor OLE DB de Visual FoxPro 9.0. Principio de la página ¿Qué necesitamos? Suponemos en este artículo que tienes conocimientos sobre Microsoft Internet Information Server (IIS) y cómo cre Lo que necesitamos para desarrollar este breve y funcional ejemplo es: Una PC servidora con Internet Information Server (IIS) instalado en donde montaremos nuestro sitio Web. Si t "Configurando IIS." 1. Visual FoxPro 9.0 instalado o solamente el Proveedor OLE DB de Visual FoxPro 9.0; lo puedes descargar de Mi Como parte de lo nuevo que trae el Proveedor OLE DB de Microsoft para Visual FoxPro 9.0, y que utilizaremos Los procedimientos almacenados pueden ahora retornar RecordSets creados a partir de cursores de V GETRESULTSET() y CLEARRESULTSET(). Se actualizó la base de datos Northwind con 5 procedimientos almacenados que incluyen la función S ejecutan. 2. Microsoft Data Access Components (MDAC) versión 2.6 ó superior. La última versión de MDAC la puedes de 3. Disponer de un editor de páginas ASP como Visual InterDev, FrontPage o simplemente el Block de Notas d 4. Principio de la página Algunos conceptos previos ¿Que es el Proveedor OLE DB de Visual FoxPro? OLE DB (Object Linking and Embedding for DataBases) para Visual FoxPro es un componente COM que se utiliza par lenguajes de programación u otras aplicaciones. OLE DB no se utiliza directamente sino por medio de ADO (ActiveX Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx 1 de 13 01/06/2015 7:16

Upload: jorge-vega-trigueros

Post on 16-Dec-2015

32 views

Category:

Documents


1 download

DESCRIPTION

aaa

TRANSCRIPT

  • Accediendo a datos de VFP 9.0 desde la Web con el Proveedor ODB de VFP 9.0

    Por Luis Mara Guayn

    Descargar ejemplos de este artculo (6 KB).

    Contenido

    Introduccin

    Qu necesitamos?

    Algunos conceptos previos

    Nuestra primer pgina

    Utilizando procedimientos almacenados

    Modificando los datos de las tablas

    Para tener en cuenta

    Conclusin

    Introduccin

    A partir de Visual FoxPro 9.0 tenemos una nueva opcin para publicar los datos de nuestras tablas en la Web. Esta opcin la logramos sin

    terceras partes, ni desarrollar objetos COM con Visual FoxPro. En este artculo veremos cmo desarrollar esta opcin, con el uso de procedi

    el uso de una nueva funcin includa en Visual FoxPro 9.0 y el nuevo Proveedor OLE DB de Visual FoxPro 9.0.

    Principio de la pgina

    Qu necesitamos?

    Suponemos en este artculo que tienes conocimientos sobre Microsoft Internet Information Server (IIS) y cmo crear aplicaciones con

    Lo que necesitamos para desarrollar este breve y funcional ejemplo es:

    Una PC servidora con Internet Information Server (IIS) instalado en donde montaremos nuestro sitio Web. Si tienes poca experiencia

    "Configurando IIS."

    1.

    Visual FoxPro 9.0 instalado o solamente el Proveedor OLE DB de Visual FoxPro 9.0; lo puedes descargar de Microsoft OLE DB Provide

    Como parte de lo nuevo que trae el Proveedor OLE DB de Microsoft para Visual FoxPro 9.0, y que utilizaremos en este ejemplo, pode

    Los procedimientos almacenados pueden ahora retornar RecordSets creados a partir de cursores de VFP usando las nuevas f

    GETRESULTSET() y CLEARRESULTSET().

    Se actualiz la base de datos Northwind con 5 procedimientos almacenados que incluyen la funcin SETRESULTSET()

    ejecutan.

    2.

    Microsoft Data Access Components (MDAC) versin 2.6 superior. La ltima versin de MDAC la puedes descargar de3.

    Disponer de un editor de pginas ASP como Visual InterDev, FrontPage o simplemente el Block de Notas de Windows4.

    Principio de la pgina

    Algunos conceptos previos

    Que es el Proveedor OLE DB de Visual FoxPro?

    OLE DB (Object Linking and Embedding for DataBases) para Visual FoxPro es un componente COM que se utiliza para tener acceso a las ba

    lenguajes de programacin u otras aplicaciones. OLE DB no se utiliza directamente sino por medio de ADO (ActiveX Data Object). Este perm

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    1 de 13 01/06/2015 7:16

  • con OLE DB u ODBC (Open DataBase Connectivity). ADO est formado por varios objetos organizados de forma jerrquica y cada uno de

    Veamos los 2 objetos de ADO que utilizaremos en el ejemplo:

    Connection Object: Nos proporciona una conexin a una base de datos. Esta conexin nos permitir ejecutar los distintos comando

    objeto primario de ADO; ninguno de los otros objetos puede existir si ste no es declarado. La conexin terminar cuando ejecutam

    ejecucin de la pgina ASP.

    Recordset Object: Representa el resultado de una consulta ejecutada contra la base de datos. Este objeto es la interfaz natural contr

    Principio de la pgina

    Nuestra primer pgina

    Una vez instalado y corriendo el servicio de IIS, e instalado el Proveedor OLE DB de VFP en el servidor, creamos una carpeta (

    "C:\Inetpub\wwwroot\") y sta ser nuestra carpeta o sitio de trabajo. En esta nueva carpeta creamos nuestra primera pgina ASP con el n

    contenido:

    Listado de Clientes al:

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    2 de 13 01/06/2015 7:16

  • Guardamos los cambios y desde el Explorador de Internet, ejecutamos:

    http://localhost/vfp/vfpoledb.asp

    Si todo va bien, estaremos visualizando la pgina que se muestra en la Figura 1.

    Figura 1. Volver al texto.

    Fcil? Ahora ya sabemos cmo podemos hacer nuestras pginas consultando dinmicamente los datos de nuestras tablas de VFP y publica

    creacin y apertura de nuestro objeto Connection en todas nuestras pginas, vamos a utilizar los Include que nos permiten las pginas AS

    nuestra base de datos, solo deberemos cambiar en un slo lugar. Esto tambin le dar ms seguridad a nuestro cdigo.

    Creamos una nueva pgina que llamaremos "conn.asp" y copiamos el siguiente cdigo:

  • oRs.Open "SELECT CustomerId, CompanyName, Address, City, Country FROM Customers", oConn%>

    Listado de Clientes al:

    Ejecutamos desde el Explorador de Internet:

    http://localhost/vfp/vfpoledb2.asp

    Y veremos los mismos resultados que en el ejemplo anterior.

    Principio de la pgina

    Utilizando procedimientos almacenados

    Para nuestro ejemplo utilizaremos los procedimientos almacenados actualizados que trae Visual FoxPro 9.0 en la base de datos

    almacenados. Para crear nuestro procedimiento almacenado, abrimos la base de datos y editamos los procedimientos almacenados:

    OPEN DATABASE (HOME(2) + "Northwind\Northwind")MODIFY PROCEDURE

    Al final del archivo, escribimos nuestro procedimiento almacenado llamado CustomersAll, el cual nos retornar todos los registros de la tab

    PROCEDURE CustomersAllSELECT CustomerId, CompanyName, Address, City, Country ;FROM Customers ;INTO CURSOR CustomersAllRETURN SETRESULTSET("CustomersAll")ENDPROC

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    4 de 13 01/06/2015 7:16

  • El cdigo para llamar un procedimiento almacenado de nuestra base de datos, desde la pgina ASP, es el siguiente:

    Creamos la nueva pgina customers.asp para obtener todos los registros de la tabla Customers, esta vez llamando al procedimiento almac

    agregamos cdigo HTML para enlazar con las siguientes pginas que realizaremos para completar este ejemplo. El cdigo de esta nueva p

    Listado de Clientes al:

    IdCompaiaDireccinCiudadPas

    Registros:

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    5 de 13 01/06/2015 7:16

  • Al ejecutar la pgina customers.asp nos muestra la tabla que se muestra en la Figura 2.

    Figura 2. Volver al texto.

    Como se puede apreciar en en la Figura 2, hemos creado un enlace a la pgina orders.asp pasando como parmetro el

    continuacin; ste llama al procedimiento almacenado CustOrdersOrders, que ya est incluido en la base de datos Northwind

    Ordenes del cliente

    Orden IdFecha OrdenFecha PedidoFecha Envio

  • Set oConn = Nothing%>

    Registros: Pginaanterior

    Los resultados de la ejecucin de la pgina orders.asp son los que se muestran en la Figura 3.

    Figura 3. Volver al texto.

    Al igual que en la pgina anterior, incluimos un enlace a la pgina details.asp que llama al procedimiento almacenado

    la pgina es el siguiente:

    Detalle de la orden

    ProductoPrecio unitarioCantidadDescuentoPrecio Total

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    7 de 13 01/06/2015 7:16

  • %

    Registros: Pginaanterior

    Y el resultado de esta pgina es el que vemos en la Figura 4.

    Figura 4. Volver al texto.

    Hasta aqu se observa que con un poco de cdigo ASP y cdigo en nuestra base de datos, podemos realizar cualquier tipo de consulta y pu

    sentencias SELECT escritas en nuestros procedimientos almacenados son optimizables, los tiempos de respuestas son excelentes.

    Principio de la pgina

    Modificando los datos de las tablas

    Aparte de consultar los datos de nuestras tablas, tambin podemos modificar e insertar datos en tablas de VFP. Sobre este punto se debe p

    pginas ASP y nuestros procedimientos almacenados. Las pginas ASP deben ser seguras y debemos validar todos los datos ingresados, no

    tambin para tener en cuenta datos ingresados con fines maliciosos. En los procedimientos almacenados tambin debemos validar los par

    el caso de modificar los datos de los clientes, sin prestar mucha atencin al punto anteriormente citado. Para realizar la pgina de edicin d

    en la pgina customers.asp para enlazar la pgina editcustomer.asp. Solo debemos agregar el siguiente cdigo a continuacin de la ltim

    Editar

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    8 de 13 01/06/2015 7:16

  • Antes de crear las pginas para la edicin y actualizacin de los datos, agregamos dos nuevos procedimientos almacenados a la base de da

    PROCEDURE GetCustomer(tcCID)SELECT CustomerId, CompanyName, ContactName, ContactTitle, ;Address, City, REGION, PostalCode, Country, Phone, Fax ;FROM Customers ;WHERE CustomerId = tcCid ;INTO CURSOR GetCustomerRETURN SETRESULTSET("GetCustomer")ENDPROC

    PROCEDURE UpdateCustomerLPARAMETERS tcCustomerid, tcCompanyName, tcContactName, ; tcContactTitle, tcAddress, tcCity, tcRegion, ;tcPostalCode, tcCountry, tcPhone, tcFaxLOCAL lnErrUPDATE Customers SET ;Companyname = tcCompanyname, ;Contactname = tcContactname, ;Contacttitle = tcContacttitle, ;Address = tcAddress, ;City = tcCity, ;Region = tcRegion, ;Postalcode = tcPostalcode, ;Country = tcCountry, ;Phone = tcPhone, ;Fax = tcFax ;WHERE Customerid = tcCustomeridlnErr = _TALLYRETURN lnErrENDPROC

    La pgina editcustomer.asp llama al procedimiento almacenado GetCustomer y contiene un formulario con todos los campos del registro

    updatecustomer.asp. El cdigo de la pgina es el siguiente:

    Editar cliente

    Id Cliente

    Nombre Compaia

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    9 de 13 01/06/2015 7:16

  • Nombre Contacto

    Ttulo Contacto

    Domicilio

    Ciudad

    Regin

    Cdigo postal

    Pas

    Telfono

    Fax

    frmCust.CompanyName.Focus

    Al ejecutar la pgina nos retorna el registro a modificar, tal como lo muestra la Figura 5.

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    10 de 13 01/06/2015 7:16

  • Figura 5. Volver al texto.

    Una vez editados los datos, el botn Grabar llama a la pgina updatecustomer.asp, la cual invoca al procedimiento almacenado

    parmetros. El cdigo para ello es el siguiente:

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    11 de 13 01/06/2015 7:16

  • Grabar cliente

    0 Then %>Los datos se grabaron correctamente

    Error al grabar los datos

    Si los datos se grabaron correctamente en la tabla, la pgina se visualiza como lo muestra la Figura 6.

    Figura 6. Volver al texto.

    Con este ltimo ejemplo observamos que la modificacin de los datos no es una tarea complicada de realizar. Solo se debern crear las pg

    para cada necesidad y tomar las precauciones descriptas anteriormente.

    Principio de la pgina

    Para tener en cuenta

    Cuando se instala Internet Information Server (IIS) en un servidor, ste crea el usuario IUSR_ para el acceso annimo a

    correctamente, este usuario deber tener los privilegios necesarios para consultar y modificar la carpeta donde se encuentra nuestra base d

    Por defecto IIS controla la contrasea de este usuario, esto nos puede traer problemas si la base de datos se encuentra en otro servidor dist

    Para evitar esto debemos desmarcar la casilla de verificacin Permitir que IIS controle la contrasea, tal como se muestra en la

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    12 de 13 01/06/2015 7:16

  • Figura 7. Volver al texto.

    Para llegar a la ventana de la Figura 7 debes acceder a las Propiedades del sitio Web, seleccionando la solapa Seguridad de directorio

    autentificacin y acceso annimo.

    Este caso est documentado en la Base de Conocimientos de Microsoft: Accessing FoxPro Table in ASP Returns Error 80040e14

    Principio de la pgina

    Conclusin

    Como comentamos al inicio de este artculo, sta es una opcin vlida y muy fcil de implementar para publicar nuestros datos de Visual Fo

    la aplicacin a desarrollar solo depende de nosotros y de nuestras necesidades. Para finalizar, deseo agradecer el apoyo y las ideas de Anto

    para elaborar el cdigo de los ejemplos de este artculo.

    Luis Mara Guayn est radicado en Tucumn, Argentina. Comenz a programar en el ao 1990 con lenguajes xBase y

    FoxPro. Es cofundador y SysOp de PortalFox, el mayor portal para desarrolladores en Visual FoxPro de habla hispana.

    rea Visual Developer: Visual FoxPro.

    Principio de la pgina

    2015 Microsoft

    Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE ... https://msdn.microsoft.com/es-es/library/bb972247(d=printer).aspx

    13 de 13 01/06/2015 7:16