accediendo a datos de vfp 9.0 desde la web con el proveedor ole db de vfp 9
DESCRIPTION
aaaTRANSCRIPT
-
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