Académique Documents
Professionnel Documents
Culture Documents
0
desde la Web con el Proveedor
OLE DB de VFP 9.0
Personas que lo han encontrado til: 28 de 32 - Valorar este tema
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 adquirir ni descargar ninguna herramienta de terceras partes, ni
desarrollar objetos COM con Visual FoxPro. En este artculo veremos cmo desarrollar esta opcin, con el
uso de procedimientos almacenados en nuestra base de datos, 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 Active Server Pages (ASP).
Lo que necesitamos para desarrollar este breve y funcional ejemplo es:
1. Una PC servidora con Internet Information Server (IIS) instalado en donde montaremos nuestro sitio
Web. Si tienes poca experiencia en esto puedes consultar el artculo "Configurando IIS."
2. Visual FoxPro 9.0 instalado o solamente el Proveedor OLE DB de Visual FoxPro 9.0; lo puedes
descargar de Microsoft OLE DB Provider for Visual FoxPro 9.0.
Como parte de lo nuevo que trae el Proveedor OLE DB de Microsoft para Visual FoxPro 9.0, y que
utilizaremos en este ejemplo, podemos mencionar:
o Los procedimientos almacenados pueden ahora retornar RecordSets creados a partir de
cursores de VFP usando las nuevas funciones de la versin
9:SETRESULTSET(), GETRESULTSET() y CLEARRESULTSET().
o Se actualiz la base de datos Northwind con 5 procedimientos almacenados que incluyen
la funcin SETRESULTSET(), de modo que stos retornan RecorSetscuando se ejecutan.
3. Microsoft Data Access Components (MDAC) versin 2.6 superior. La ltima versin de MDAC
la puedes descargar de MDAC 2.8 (Espaol).
4. Disponer de un editor de pginas ASP como Visual InterDev, FrontPage o simplemente el Block
de Notas de Windows.
Principio de la pgina
utiliza para tener acceso a las bases de datos y tablas de VFP desde otros lenguajes de programacin u
otras aplicaciones. OLE DB no se utiliza directamente sino por medio de ADO (ActiveX Data Object). Este
permite conectarse a orgenes de datos compatibles con OLE DB u ODBC (Open DataBase Connectivity).
ADO est formado por varios objetos organizados de forma jerrquica y cada uno de stos posee sus
mtodos y propiedades.
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 comandos sobre la base de datos. Connection es el objeto primario
de ADO; ninguno de los otros objetos puede existir si ste no es declarado. La conexin terminar
cuando ejecutamos el mtodo Close o cuando termine la 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 contra la base de datos.
Principio de la pgina
oConn.Close
Set oRs = Nothing
Set oConn = Nothing
%>
</table>
</body>
</html>
Guardamos los cambios y desde el Explorador de Internet, ejecutamos:
http://localhost/vfp/vfpoledb.asp
Los resultados de la ejecucin de la pgina orders.asp son los que se muestran en la Figura 3.
<td><%=oRs(0)%></td>
<td align="right"><%=oRs(1)%></td>
<td align="right"><%=oRs(2)%></td>
<td align="right"><%=oRs(3)%>%</td>
<td align="right"><%=oRs(4)%></td>
</tr>
<%
oRs.MoveNext
Loop
oRs.Close
oConn.Close
Set oRs = Nothing
Set oConn = Nothing
%>
</table>
<p>Registros: <%=nReg%></p>
<p><a href="javascript:history.back()">Pgina anterior</a></p>
</body>
</html>
agregamos una columna en la pgina customers.asp para enlazar la pgina editcustomer.asp. Solo
debemos agregar el siguiente cdigo a continuacin de la ltima columna de la tabla:
<td><a href="/vfp/editcustomer.asp?cId=<%=oRs(0)%>">Editar</a></td>
Antes de crear las pginas para la edicin y actualizacin de los datos, agregamos dos nuevos
procedimientos almacenados a la base de datos Northwind:
PROCEDURE GetCustomer(tcCID)
SELECT CustomerId, CompanyName, ContactName, ContactTitle, ;
Address, City, REGION, PostalCode, Country, Phone, Fax ;
FROM Customers ;
WHERE CustomerId = tcCid ;
INTO CURSOR GetCustomer
RETURN SETRESULTSET("GetCustomer")
ENDPROC
PROCEDURE UpdateCustomer
LPARAMETERS tcCustomerid, tcCompanyName, tcContactName, ;
tcContactTitle, tcAddress, tcCity, tcRegion, ;
tcPostalCode, tcCountry, tcPhone, tcFax
LOCAL lnErr
UPDATE Customers SET ;
Companyname = tcCompanyname, ;
Contactname = tcContactname, ;
Contacttitle = tcContacttitle, ;
Address = tcAddress, ;
City = tcCity, ;
Region = tcRegion, ;
Postalcode = tcPostalcode, ;
Country = tcCountry, ;
Phone = tcPhone, ;
Fax = tcFax ;
WHERE Customerid = tcCustomerid
lnErr = _TALLY
RETURN lnErr
ENDPROC
La pgina editcustomer.asp llama al procedimiento almacenado GetCustomer y contiene un formulario
con todos los campos del registro y un botn Grabar que invoca a la pgina updatecustomer.asp. El
cdigo de la pgina es el siguiente:
<%@ Language=VBScript %>
<!-- #include file="conn.asp" -->
<html>
<%
Dim oRs, nReg, cId
cId = Request("cId")
Set oRs = oConn.Execute("GetCustomer('" & cId & "')", nReg, 4)
%>
<body bgcolor="#E0EAFC">
<h3>Editar cliente <%=cId%> </h3>
<hr>
<form id="frmCust" name="frmCust" action="updatecustomer.asp" method="post">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>Id Cliente</td>
</html>
Al ejecutar la pgina nos retorna el registro a modificar, tal como lo muestra la Figura 5.
Si los datos se grabaron correctamente en la tabla, la pgina se visualiza como lo muestra la Figura 6.
Conclusin
Como comentamos al inicio de este artculo, sta es una opcin vlida y muy fcil de implementar para
publicar nuestros datos de Visual FoxPro en la Web. La complejidad y el alcance de la aplicacin a
desarrollar solo depende de nosotros y de nuestras necesidades. Para finalizar, deseo agradecer el apoyo y
las ideas de Antonio Muoz de Burgos, que mucho me ayudaron para elaborar el cdigo de los ejemplos de
este artculo.