Discussion:
Vfp vs Php-Mysql
(demasiado antiguo para responder)
Davisoft
2008-06-12 07:55:25 UTC
Permalink
Hola amigos

Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos en
xml desde un host php/mysql

Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k , desarrollar
la logica de negocios en php con mysql como base datos, y usar vfp como
aplicacion cliente llamando a ese archivo php para enviar y recibir datos en
xml u otro formatos.

es imprescindible que se use un host php/mysql, por que quiero que mi base
de datos este online y en internet, y que pueda instalarlo en cualquier host
de pago. y con mi aplicacion en foxpro como cliente en vez de una pagina
web, como me entere que ajax trabaja de esa forma interactuando con xml y
protocolos http en modo asincrono, quise saber si foxpro puede hacer lo
mismo. o que otras alternativas parecidas existen ?.

estaba pensando aprender html, javascript etc, pero me surgen muchas dudas
sobre varios aspectos que facilmente lo puedo hacer con una aplicacion de
escritorio como foxpro, y sobre todo para desarrollar aplicaciones , lo
haria mas facil en nuestro querido foxpro.

ojala haya alternativas a esta idea que tengo

bye
Anders Altberg
2008-06-12 13:10:17 UTC
Permalink
VFP funciona muy bién como frente a una BD MySQL, con una conexión ODBC o
OLEDB.
Puede utilizar funcionaldad ecrito en PHP si es accesibles en forma de
objetos COM.

VFP puede tambien compilar objectos COM en archivos DLL que PHP podría
utilizar.

Mira tambien
http://www.intellectiongroup.com/AFUGPresentationAJAX_files/frame.htm
http://www.west-wind.com/wiki/wc.dll?wc~AjaxWithWebConnect
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000370

-Anders
Post by Davisoft
Hola amigos
Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos en
xml desde un host php/mysql
Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k ,
desarrollar la logica de negocios en php con mysql como base datos, y usar
vfp como aplicacion cliente llamando a ese archivo php para enviar y
recibir datos en xml u otro formatos.
es imprescindible que se use un host php/mysql, por que quiero que mi base
de datos este online y en internet, y que pueda instalarlo en cualquier
host de pago. y con mi aplicacion en foxpro como cliente en vez de una
pagina web, como me entere que ajax trabaja de esa forma interactuando con
xml y protocolos http en modo asincrono, quise saber si foxpro puede hacer
lo mismo. o que otras alternativas parecidas existen ?.
estaba pensando aprender html, javascript etc, pero me surgen muchas dudas
sobre varios aspectos que facilmente lo puedo hacer con una aplicacion de
escritorio como foxpro, y sobre todo para desarrollar aplicaciones , lo
haria mas facil en nuestro querido foxpro.
ojala haya alternativas a esta idea que tengo
bye
Davisoft
2008-06-12 15:02:16 UTC
Permalink
lo que yo quiero hacer es al reves, quiero llamar un archivo php desde mi
aplicacion foxpro

por ejemplo, si yo tuviera un servicio de hosting de internet con php y
mysql, en php elaboro un archivo que haga una consulta a la base de datos en
mysql y con esa data, devuelvo un documento xml . por ejemplo
http://site/data.php y desde mi aplicacion ejecuto ese archivo php desde ese
sitio web y como el archivo php devuelve un documento xml eso facilmente se
puede manejar en foxpro de ahi en adelante.

como se puede hacer eso?
Post by Anders Altberg
VFP funciona muy bién como frente a una BD MySQL, con una conexión ODBC o
OLEDB.
Puede utilizar funcionaldad ecrito en PHP si es accesibles en forma de
objetos COM.
VFP puede tambien compilar objectos COM en archivos DLL que PHP podría
utilizar.
Mira tambien
http://www.intellectiongroup.com/AFUGPresentationAJAX_files/frame.htm
http://www.west-wind.com/wiki/wc.dll?wc~AjaxWithWebConnect
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000370
-Anders
Post by Davisoft
Hola amigos
Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos
en xml desde un host php/mysql
Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k ,
desarrollar la logica de negocios en php con mysql como base datos, y
usar vfp como aplicacion cliente llamando a ese archivo php para enviar y
recibir datos en xml u otro formatos.
es imprescindible que se use un host php/mysql, por que quiero que mi
base de datos este online y en internet, y que pueda instalarlo en
cualquier host de pago. y con mi aplicacion en foxpro como cliente en vez
de una pagina web, como me entere que ajax trabaja de esa forma
interactuando con xml y protocolos http en modo asincrono, quise saber si
foxpro puede hacer lo mismo. o que otras alternativas parecidas existen
?.
estaba pensando aprender html, javascript etc, pero me surgen muchas
dudas sobre varios aspectos que facilmente lo puedo hacer con una
aplicacion de escritorio como foxpro, y sobre todo para desarrollar
aplicaciones , lo haria mas facil en nuestro querido foxpro.
ojala haya alternativas a esta idea que tengo
bye
Davisoft
2008-06-12 20:20:17 UTC
Permalink
hasta ahora he encontrado 2 librerias que hacen lo que quiero:

wwIPStuff (Hay que pagar 129 dolores)
iFox (dice que es gratis, veremos si es verdad jeje)

si saben de otras librerias, porfa avisen , gracias
Post by Davisoft
Hola amigos
Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos en
xml desde un host php/mysql
Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k ,
desarrollar la logica de negocios en php con mysql como base datos, y usar
vfp como aplicacion cliente llamando a ese archivo php para enviar y
recibir datos en xml u otro formatos.
es imprescindible que se use un host php/mysql, por que quiero que mi base
de datos este online y en internet, y que pueda instalarlo en cualquier
host de pago. y con mi aplicacion en foxpro como cliente en vez de una
pagina web, como me entere que ajax trabaja de esa forma interactuando con
xml y protocolos http en modo asincrono, quise saber si foxpro puede hacer
lo mismo. o que otras alternativas parecidas existen ?.
estaba pensando aprender html, javascript etc, pero me surgen muchas dudas
sobre varios aspectos que facilmente lo puedo hacer con una aplicacion de
escritorio como foxpro, y sobre todo para desarrollar aplicaciones , lo
haria mas facil en nuestro querido foxpro.
ojala haya alternativas a esta idea que tengo
bye
Davisoft
2008-06-16 21:01:46 UTC
Permalink
he hecho un demo de la aplicacion que les habia comentado

he creado un cuenta en un hosting he creado una tabla en mysql "articulos"
luego elabore 2 archivos php nuevo.php y datosxml.php, luego mi aplicacion
de escritorio hecho en vfp8 interactua con esos archivos php para crear
nuevos registros y mostrarlos

http://sistdemo.x10hosting.com/demofox/datosxml.php
si lo ejecutan asi desde un navegador, se mostrara un doc xml con todos los
registros de la tabla articulos de mysql

http://sistdemo.x10hosting.com/demofox/nuevo.php
este archivo crea nuevos registros , pero hay que pasarle los parametros
asi:
http://sistdemo.x10hosting.com/demofox/nuevo.php?descripcion=Impresora&precio=458.96
recibe 2 parametros descripcion y precio

demofox.exe
es una aplicacion hecha en vfp8 que obtien los resultados de
http://sistdemo.x10hosting.com/demofox/datosxml.php en xml y los muestra en
una ventana, para agregar nuevos registros se invoca a
http://sistdemo.x10hosting.com/demofox/nuevo.php con sus respectivos
parametros para agregar registros en la base de datos del hosting

si tienen alguna idea o como mejorar esto les agradeceria

Descargar e instalar en este orden :
Runtime Foxpro 8.0 : http://www.adrive.com/home/downloadfile/36442765/d/1
Libreria iFox : http://www.coliseosoftware.com.ar/ifox/downloads/ifox.msi
Aplicacion demofox.exe con fuentes incluidas :
http://www.adrive.com/home/downloadfile/36443254/d/1

bye
Post by Davisoft
Hola amigos
Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos en
xml desde un host php/mysql
Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k ,
desarrollar la logica de negocios en php con mysql como base datos, y usar
vfp como aplicacion cliente llamando a ese archivo php para enviar y
recibir datos en xml u otro formatos.
es imprescindible que se use un host php/mysql, por que quiero que mi base
de datos este online y en internet, y que pueda instalarlo en cualquier
host de pago. y con mi aplicacion en foxpro como cliente en vez de una
pagina web, como me entere que ajax trabaja de esa forma interactuando con
xml y protocolos http en modo asincrono, quise saber si foxpro puede hacer
lo mismo. o que otras alternativas parecidas existen ?.
estaba pensando aprender html, javascript etc, pero me surgen muchas dudas
sobre varios aspectos que facilmente lo puedo hacer con una aplicacion de
escritorio como foxpro, y sobre todo para desarrollar aplicaciones , lo
haria mas facil en nuestro querido foxpro.
ojala haya alternativas a esta idea que tengo
bye
Davisoft
2008-06-16 21:55:21 UTC
Permalink
Parece que los links piden registrarse, aqui van otros

runtime vfp8
http://www.adrive.com/public/6e0957547a41203ffe3071291b2cc5e3fb994732ea578ed5b69fc379164a8fd1.html

fuentes fox y php
http://www.adrive.com/public/b9fa10fa8d9e5af964e1028e1b8486be9a02cb4609371e5b100a8fde71211567.html
Post by Davisoft
he hecho un demo de la aplicacion que les habia comentado
he creado un cuenta en un hosting he creado una tabla en mysql "articulos"
luego elabore 2 archivos php nuevo.php y datosxml.php, luego mi aplicacion
de escritorio hecho en vfp8 interactua con esos archivos php para crear
nuevos registros y mostrarlos
http://sistdemo.x10hosting.com/demofox/datosxml.php
si lo ejecutan asi desde un navegador, se mostrara un doc xml con todos
los registros de la tabla articulos de mysql
http://sistdemo.x10hosting.com/demofox/nuevo.php
este archivo crea nuevos registros , pero hay que pasarle los parametros
http://sistdemo.x10hosting.com/demofox/nuevo.php?descripcion=Impresora&precio=458.96
recibe 2 parametros descripcion y precio
demofox.exe
es una aplicacion hecha en vfp8 que obtien los resultados de
http://sistdemo.x10hosting.com/demofox/datosxml.php en xml y los muestra
en una ventana, para agregar nuevos registros se invoca a
http://sistdemo.x10hosting.com/demofox/nuevo.php con sus respectivos
parametros para agregar registros en la base de datos del hosting
si tienen alguna idea o como mejorar esto les agradeceria
Runtime Foxpro 8.0 : http://www.adrive.com/home/downloadfile/36442765/d/1
Libreria iFox : http://www.coliseosoftware.com.ar/ifox/downloads/ifox.msi
http://www.adrive.com/home/downloadfile/36443254/d/1
bye
Post by Davisoft
Hola amigos
Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos
en xml desde un host php/mysql
Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k ,
desarrollar la logica de negocios en php con mysql como base datos, y
usar vfp como aplicacion cliente llamando a ese archivo php para enviar y
recibir datos en xml u otro formatos.
es imprescindible que se use un host php/mysql, por que quiero que mi
base de datos este online y en internet, y que pueda instalarlo en
cualquier host de pago. y con mi aplicacion en foxpro como cliente en vez
de una pagina web, como me entere que ajax trabaja de esa forma
interactuando con xml y protocolos http en modo asincrono, quise saber si
foxpro puede hacer lo mismo. o que otras alternativas parecidas existen
?.
estaba pensando aprender html, javascript etc, pero me surgen muchas
dudas sobre varios aspectos que facilmente lo puedo hacer con una
aplicacion de escritorio como foxpro, y sobre todo para desarrollar
aplicaciones , lo haria mas facil en nuestro querido foxpro.
ojala haya alternativas a esta idea que tengo
bye
mapner
2008-06-18 01:11:20 UTC
Permalink
Hola:

Te paso algo de código de ejemplo que realiza lo que dices, utilizando
Microsoft.XMLHTTP
El ejemplo usa VFP como front-end y pasa una sentencia SQL como
parámetro a un URL PHP, el PHP procesa el query y devuelve el
resultado como XML a VFP

Esto demuestra que se puede utilizar VFP como cliente y PHP como
Servidor

Se han utilizado algunas librerías en PHP como PEAR para manejo de BD
(en este ejemplo uso Firebird) y XML_Query2XML.

Como servidor WEB en windows utilizo XAMPP ( http://www.apachefriends.org/en/xampp.html
) que es un integrado de Apache, PHP MySQL y PERL. Es muy fácil de
instalar y utilizar.

saludos
Mauricio


************** Código VFP ******************************

#DEFINE HTTPSTATUS_OK 200
#DEFINE HTTPSTATUS_CREATED 201
#DEFINE HTTPSTATUS_ACCEPTED 202
#DEFINE HTTPSTATUS_MULTISTATUS 207
#DEFINE HTTPSTATUS_BADREQUEST 400
#DEFINE HTTPSTATUS_UNAUTHORIZED 401
#DEFINE HTTPSTATUS_FORBIDDEN 403
#DEFINE HTTPSTATUS_NOTFOUND 404
#DEFINE HTTPSTATUS_INTERNALSERVERERROR 500

GetXML()

**********************
* GetXML:
*
*
**********************
PROCEDURE GetXML
CLEAR
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")

cSQL = "select first 50 * from cpr_oper"
oHTTP.OPEN("GET", 'http://localhost/xp/xpa_fb.php?sql='+cSQL, .F.)
oHTTP.SEND()

? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP = NULL
SET CPCOMPILE TO
XMLTOCURSOR("cli.xml","VFPData",512)

ENDPROC

PROCEDURE Export_xml

USE ("C:\wrk\datda\DATSA\PLC.DBF") ALIAS PLC
CURSORTOXML( "plc", "plc.xml",1, 512, 0, "" )
USE
XMLTOCURSOR("plc.xml","xx",512)
cXML =""
ALTER TABLE xx ADD COLUMN _st_ c(1)
BROWSE NORMAL
CURSORTOXML( "xx", "cXML",1, 0, 0, "" )

oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("POST", 'http://localhost/xp/xml_1.php', .F.)
oHTTP.SEND(cXML)
? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP = NULL

ENDPROC

PROCEDURE GetMetadata
LPARAMETERS cTable

CLEAR
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("GET", 'http://localhost/xp/metadata_fb.php?
table='+UPPER(cTable), .F.)
oHTTP.SEND()

? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
oHTTP = NULL
STRTOFILE(cRt,'xx.html',4)

XMLTOCURSOR(cRt,"xx",0)
BROWSE NORMAL

PROCEDURE SendPostParam

FOR i = 1 TO ALEN(params)
IF i>1
parameterString = parameterString + "&"
ENDIF
parameterString = parameterString + params[i][1] + “=” +
encodeURI(params[i][2])

oHTTP = Create Object("Microsoft.XMLHTTP")

oHTTP.Open("POST", "http://fox.wikis.com/wc.dll", .F.)
oHTTP.setRequestHeader('Content-Type', 'application/x-www-form-
urlencoded')
oHTTP.Send(parameterString)


ENDFOR
ENDPROC

FUNCTION urlEncode
PARAMETERS tcValue, llNoPlus
LOCAL lcResult, lcChar, lnSize, lnX

*** Do it in VFP Code
lcResult=""

FOR lnX=1 to len(tcValue)
lcChar = SUBSTR(tcValue,lnX,1)
IF ATC(lcChar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0
lcResult=lcResult + lcChar
LOOP
ENDIF
IF lcChar=" " AND !llNoPlus
lcResult = lcResult + "+"
LOOP
ENDIF
*** Convert others to Hex equivalents
lcResult = lcResult + "%" + RIGHT(transform(ASC(lcChar),"@0"),2)
ENDFOR

RETURN lcResult
ENDFUNC

********************* Código PHP *************************************
*** xpa_fb.php ***

<?php

$sql = $_GET[sql];
require_once 'XML/Query2XML.php';
require_once 'MDB2.php';
$query2xml = XML_Query2XML::factory(MDB2::factory('ibase://
SYSDBA:***@localhost/c:\data\mibd.fdb'));
$dom = $query2xml->getFlatXML($sql, 'Clientes', 'cli');
//header('Content-Type: application/xml');

$dom->formatOutput = true;
print $dom->saveXML();
?>

******** fin de código *************
Davisoft
2008-06-18 16:50:05 UTC
Permalink
gracias por la info, se ve interesante !!!!

"mapner" <***@gmail.com> escribi� en el mensaje news:dc5a6ab0-a1b9-45d5-9ef8-***@e39g2000hsf.googlegroups.com...
Hola:

Te paso algo de código de ejemplo que realiza lo que dices, utilizando
Microsoft.XMLHTTP
El ejemplo usa VFP como front-end y pasa una sentencia SQL como
parámetro a un URL PHP, el PHP procesa el query y devuelve el
resultado como XML a VFP

Esto demuestra que se puede utilizar VFP como cliente y PHP como
Servidor

Se han utilizado algunas librerías en PHP como PEAR para manejo de BD
(en este ejemplo uso Firebird) y XML_Query2XML.

Como servidor WEB en windows utilizo XAMPP (
http://www.apachefriends.org/en/xampp.html
) que es un integrado de Apache, PHP MySQL y PERL. Es muy fácil de
instalar y utilizar.

saludos
Mauricio


************** Código VFP ******************************

#DEFINE HTTPSTATUS_OK 200
#DEFINE HTTPSTATUS_CREATED 201
#DEFINE HTTPSTATUS_ACCEPTED 202
#DEFINE HTTPSTATUS_MULTISTATUS 207
#DEFINE HTTPSTATUS_BADREQUEST 400
#DEFINE HTTPSTATUS_UNAUTHORIZED 401
#DEFINE HTTPSTATUS_FORBIDDEN 403
#DEFINE HTTPSTATUS_NOTFOUND 404
#DEFINE HTTPSTATUS_INTERNALSERVERERROR 500

GetXML()

**********************
* GetXML:
*
*
**********************
PROCEDURE GetXML
CLEAR
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")

cSQL = "select first 50 * from cpr_oper"
oHTTP.OPEN("GET", 'http://localhost/xp/xpa_fb.php?sql='+cSQL, .F.)
oHTTP.SEND()

? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP = NULL
SET CPCOMPILE TO
XMLTOCURSOR("cli.xml","VFPData",512)

ENDPROC

PROCEDURE Export_xml

USE ("C:\wrk\datda\DATSA\PLC.DBF") ALIAS PLC
CURSORTOXML( "plc", "plc.xml",1, 512, 0, "" )
USE
XMLTOCURSOR("plc.xml","xx",512)
cXML =""
ALTER TABLE xx ADD COLUMN _st_ c(1)
BROWSE NORMAL
CURSORTOXML( "xx", "cXML",1, 0, 0, "" )

oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("POST", 'http://localhost/xp/xml_1.php', .F.)
oHTTP.SEND(cXML)
? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP = NULL

ENDPROC

PROCEDURE GetMetadata
LPARAMETERS cTable

CLEAR
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("GET", 'http://localhost/xp/metadata_fb.php?
table='+UPPER(cTable), .F.)
oHTTP.SEND()

? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
oHTTP = NULL
STRTOFILE(cRt,'xx.html',4)

XMLTOCURSOR(cRt,"xx",0)
BROWSE NORMAL

PROCEDURE SendPostParam

FOR i = 1 TO ALEN(params)
IF i>1
parameterString = parameterString + "&"
ENDIF
parameterString = parameterString + params[i][1] + “=” +
encodeURI(params[i][2])

oHTTP = Create Object("Microsoft.XMLHTTP")

oHTTP.Open("POST", "http://fox.wikis.com/wc.dll", .F.)
oHTTP.setRequestHeader('Content-Type', 'application/x-www-form-
urlencoded')
oHTTP.Send(parameterString)


ENDFOR
ENDPROC

FUNCTION urlEncode
PARAMETERS tcValue, llNoPlus
LOCAL lcResult, lcChar, lnSize, lnX

*** Do it in VFP Code
lcResult=""

FOR lnX=1 to len(tcValue)
lcChar = SUBSTR(tcValue,lnX,1)
IF ATC(lcChar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0
lcResult=lcResult + lcChar
LOOP
ENDIF
IF lcChar=" " AND !llNoPlus
lcResult = lcResult + "+"
LOOP
ENDIF
*** Convert others to Hex equivalents
lcResult = lcResult + "%" + RIGHT(transform(ASC(lcChar),"@0"),2)
ENDFOR

RETURN lcResult
ENDFUNC

********************* Código PHP *************************************
*** xpa_fb.php ***

<?php

$sql = $_GET[sql];
require_once 'XML/Query2XML.php';
require_once 'MDB2.php';
$query2xml = XML_Query2XML::factory(MDB2::factory('ibase://
SYSDBA:***@localhost/c:\data\mibd.fdb'));
$dom = $query2xml->getFlatXML($sql, 'Clientes', 'cli');
//header('Content-Type: application/xml');

$dom->formatOutput = true;
print $dom->saveXML();
?>

******** fin de código *************
fabian bejarano
2011-01-18 19:54:51 UTC
Permalink
Coloco el c?digo que utilic? para llamar desde Visual FoxPro a un PHP para obtener datos desde MySQL.

**************************
Para ensayarlo uso el WampServer donde cree la base de datos ejemplo con la siguiente tabla:

CREATE TABLE IF NOT EXISTS `centros` (
`codcentro` int(10) NOT NULL AUTO_INCREMENT,
`codhospital` int(10) NOT NULL,
`centro` varchar(100) NOT NULL,
PRIMARY KEY (`codcentro`),
KEY `codhospital` (`codhospital`)
) ENGINE=MyISAM ;
INSERT INTO `centros` (`codcentro`, `codhospital`, `centro`) VALUES
(1, 1, 'BOGOTA'),
(2, 1, 'CALI'),
(3, 1, 'MEDELLIN'),
(4, 1, 'BUGA');


**************************
Ahora utilic? el siguiente c?digo PHP para crear el archivo XML:

(localhost/ejvfp/centrosdat.php)

<?php
// Viene el c?digo del hospital
$codhospital=$_REQUEST['hs'];

//Variables de conexion a la base de datos
$databaseURL = "localhost";
$databaseUName = "root";
$databasePWord = "";
$databaseName = "ejemplo";
//conectar con el servidor MySQL y seleccionar la base de datos
$conn = mysql_connect($databaseURL, $databaseUName, $databasePWord)
or die("Error de Conexion: " . mysql_error());
mysql_select_db($databaseName, $conn) or die("Error conectando a la BD");

// consulta a la base de datos
$SQL = "SELECT * FROM centros WHERE codhospital='$codhospital'";
$result = mysql_query( $SQL );

// cabecera del archivo XML
if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) {
header("Content-type: application/xhtml+xml;charset=latin1");
} else {
header("Content-type: text/xml;charset=latin1");
}

// Estructura inicial del archivo
$res =
'<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<VFPData>
<xsd:schema id="VFPData" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="VFPData" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="centros" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="codcentro">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:maxLength value="10"/>
<xsd:fractionDigits value="0"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="centro">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
';

// Datos
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
$res.=
' <centros>
<codcentro>'.$row['codcentro'].'</codcentro>
<centro>'.$row['centro'].'</centro>
</centros>
';
}
$res .= '</VFPData>';

echo $res;
mysql_close($conn);
?>


**************************
Y por ?ltimo el c?digo en Visual FoxPro


objHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
sql='+cSQL, .F.)
objHTTP.OPEN("GET", "http://localhost/ejvfp/centrosdat.php?hs=1", .F.)
objHTTP.SEND()
cRta = objHTTP.responseText
objHTTP = NULL
SET CPCOMPILE TO
XMLTOCURSOR(cRta, "cCentros")
BROWSE


Espero que les sirva
Post by Davisoft
Hola amigos
Quisiera saber si foxpro puede trabajar como lo hace AJAX, es decir, si
foxpro puede llamar a un archivo php de forma asincrona y recibir datos en
xml desde un host php/mysql
Lo que intento es poner mi base de datos en mysql/php en un host de
alojamiento de internet, algo parecido a lo de com++ de win2k , desarrollar
la logica de negocios en php con mysql como base datos, y usar vfp como
aplicacion cliente llamando a ese archivo php para enviar y recibir datos en
xml u otro formatos.
es imprescindible que se use un host php/mysql, por que quiero que mi base
de datos este online y en internet, y que pueda instalarlo en cualquier host
de pago. y con mi aplicacion en foxpro como cliente en vez de una pagina
web, como me entere que ajax trabaja de esa forma interactuando con xml y
protocolos http en modo asincrono, quise saber si foxpro puede hacer lo
mismo. o que otras alternativas parecidas existen ?.
estaba pensando aprender html, javascript etc, pero me surgen muchas dudas
sobre varios aspectos que facilmente lo puedo hacer con una aplicacion de
escritorio como foxpro, y sobre todo para desarrollar aplicaciones , lo
haria mas facil en nuestro querido foxpro.
ojala haya alternativas a esta idea que tengo
bye
Post by Davisoft
lo que yo quiero hacer es al reves, quiero llamar un archivo php desde mi
aplicacion foxpro
por ejemplo, si yo tuviera un servicio de hosting de internet con php y
mysql, en php elaboro un archivo que haga una consulta a la base de datos en
mysql y con esa data, devuelvo un documento xml . por ejemplo
http://site/data.php y desde mi aplicacion ejecuto ese archivo php desde ese
sitio web y como el archivo php devuelve un documento xml eso facilmente se
puede manejar en foxpro de ahi en adelante.
como se puede hacer eso?
Post by Davisoft
wwIPStuff (Hay que pagar 129 dolores)
iFox (dice que es gratis, veremos si es verdad jeje)
si saben de otras librerias, porfa avisen , gracias
Post by Davisoft
he hecho un demo de la aplicacion que les habia comentado
he creado un cuenta en un hosting he creado una tabla en mysql "articulos"
luego elabore 2 archivos php nuevo.php y datosxml.php, luego mi aplicacion
de escritorio hecho en vfp8 interactua con esos archivos php para crear
nuevos registros y mostrarlos
http://sistdemo.x10hosting.com/demofox/datosxml.php
si lo ejecutan asi desde un navegador, se mostrara un doc xml con todos los
registros de la tabla articulos de mysql
http://sistdemo.x10hosting.com/demofox/nuevo.php
este archivo crea nuevos registros , pero hay que pasarle los parametros
http://sistdemo.x10hosting.com/demofox/nuevo.php?descripcion=Impresora&precio=458.96
recibe 2 parametros descripcion y precio
demofox.exe
es una aplicacion hecha en vfp8 que obtien los resultados de
http://sistdemo.x10hosting.com/demofox/datosxml.php en xml y los muestra en
una ventana, para agregar nuevos registros se invoca a
http://sistdemo.x10hosting.com/demofox/nuevo.php con sus respectivos
parametros para agregar registros en la base de datos del hosting
si tienen alguna idea o como mejorar esto les agradeceria
Runtime Foxpro 8.0 : http://www.adrive.com/home/downloadfile/36442765/d/1
Libreria iFox : http://www.coliseosoftware.com.ar/ifox/downloads/ifox.msi
http://www.adrive.com/home/downloadfile/36443254/d/1
bye
Post by Davisoft
Parece que los links piden registrarse, aqui van otros
runtime vfp8
http://www.adrive.com/public/6e0957547a41203ffe3071291b2cc5e3fb994732ea578ed5b69fc379164a8fd1.html
fuentes fox y php
http://www.adrive.com/public/b9fa10fa8d9e5af964e1028e1b8486be9a02cb4609371e5b100a8fde71211567.html
Post by Davisoft
gracias por la info, se ve interesante !!!!
Te paso algo de c?digo de ejemplo que realiza lo que dices, utilizando
Microsoft.XMLHTTP
El ejemplo usa VFP como front-end y pasa una sentencia SQL como
par?metro a un URL PHP, el PHP procesa el query y devuelve el
resultado como XML a VFP
Esto demuestra que se puede utilizar VFP como cliente y PHP como
Servidor
Se han utilizado algunas librer?as en PHP como PEAR para manejo de BD
(en este ejemplo uso Firebird) y XML_Query2XML.
Como servidor WEB en windows utilizo XAMPP (
http://www.apachefriends.org/en/xampp.html
) que es un integrado de Apache, PHP MySQL y PERL. Es muy f?cil de
instalar y utilizar.
saludos
Mauricio
************** C?digo VFP ******************************
GetXML()
**********************
*
*
**********************
PROCEDURE GetXML
CLEAR
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
cSQL = "select first 50 * from cpr_oper"
oHTTP.OPEN("GET", 'http://localhost/xp/xpa_fb.php?sql='+cSQL, .F.)
oHTTP.SEND()
? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP = NULL
SET CPCOMPILE TO
XMLTOCURSOR("cli.xml","VFPData",512)
ENDPROC
PROCEDURE Export_xml
USE ("C:\wrk\datda\DATSA\PLC.DBF") ALIAS PLC
CURSORTOXML( "plc", "plc.xml",1, 512, 0, "" )
USE
XMLTOCURSOR("plc.xml","xx",512)
cXML =""
ALTER TABLE xx ADD COLUMN _st_ c(1)
BROWSE NORMAL
CURSORTOXML( "xx", "cXML",1, 0, 0, "" )
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("POST", 'http://localhost/xp/xml_1.php', .F.)
oHTTP.SEND(cXML)
? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP = NULL
ENDPROC
PROCEDURE GetMetadata
LPARAMETERS cTable
CLEAR
oHTTP = CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("GET", 'http://localhost/xp/metadata_fb.php?
table='+UPPER(cTable), .F.)
oHTTP.SEND()
? oHTTP.STATUS
cRt = oHTTP.responseText
SET SAFETY OFF
oHTTP = NULL
STRTOFILE(cRt,'xx.html',4)
XMLTOCURSOR(cRt,"xx",0)
BROWSE NORMAL
PROCEDURE SendPostParam
FOR i = 1 TO ALEN(params)
IF i>1
parameterString = parameterString + "&"
ENDIF
parameterString = parameterString + params[i][1] + ?=? +
encodeURI(params[i][2])
oHTTP = Create Object("Microsoft.XMLHTTP")
oHTTP.Open("POST", "http://fox.wikis.com/wc.dll", .F.)
oHTTP.setRequestHeader('Content-Type', 'application/x-www-form-
urlencoded')
oHTTP.Send(parameterString)
ENDFOR
ENDPROC
FUNCTION urlEncode
PARAMETERS tcValue, llNoPlus
LOCAL lcResult, lcChar, lnSize, lnX
*** Do it in VFP Code
lcResult=""
FOR lnX=1 to len(tcValue)
lcChar = SUBSTR(tcValue,lnX,1)
IF ATC(lcChar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0
lcResult=lcResult + lcChar
LOOP
ENDIF
IF lcChar=" " AND !llNoPlus
lcResult = lcResult + "+"
LOOP
ENDIF
*** Convert others to Hex equivalents
ENDFOR
RETURN lcResult
ENDFUNC
********************* C?digo PHP *************************************
*** xpa_fb.php ***
<?php
$sql = $_GET[sql];
require_once 'XML/Query2XML.php';
require_once 'MDB2.php';
$query2xml = XML_Query2XML::factory(MDB2::factory('ibase://
$dom = $query2xml->getFlatXML($sql, 'Clientes', 'cli');
//header('Content-Type: application/xml');
$dom->formatOutput = true;
print $dom->saveXML();
?>
******** fin de c?digo *************
Te paso algo de c=F3digo de ejemplo que realiza lo que dices, utilizando
Microsoft.XMLHTTP
El ejemplo usa VFP como front-end y pasa una sentencia SQL como
par=E1metro a un URL PHP, el PHP procesa el query y devuelve el
resultado como XML a VFP
Esto demuestra que se puede utilizar VFP como cliente y PHP como
Servidor
Se han utilizado algunas librer=EDas en PHP como PEAR para manejo de BD
(en este ejemplo uso Firebird) y XML_Query2XML.
Como servidor WEB en windows utilizo XAMPP ( http://www.apachefriends.org/en=
/xampp.html
) que es un integrado de Apache, PHP MySQL y PERL. Es muy f=E1cil de
instalar y utilizar.
saludos
Mauricio
************** C=F3digo VFP ******************************
GetXML()
**********************
*
*
**********************
PROCEDURE GetXML
CLEAR
oHTTP =3D CREATEOBJECT("Microsoft.XMLHTTP")
cSQL =3D "select first 50 * from cpr_oper"
oHTTP.OPEN("GET", 'http://localhost/xp/xpa_fb.php?sql=3D'+cSQL, .F.)
oHTTP.SEND()
? oHTTP.STATUS
cRt =3D oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP =3D NULL
SET CPCOMPILE TO
XMLTOCURSOR("cli.xml","VFPData",512)
ENDPROC
PROCEDURE Export_xml
USE ("C:\wrk\datda\DATSA\PLC.DBF") ALIAS PLC
CURSORTOXML( "plc", "plc.xml",1, 512, 0, "" )
USE
XMLTOCURSOR("plc.xml","xx",512)
cXML =3D""
ALTER TABLE xx ADD COLUMN _st_ c(1)
BROWSE NORMAL
CURSORTOXML( "xx", "cXML",1, 0, 0, "" )
oHTTP =3D CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("POST", 'http://localhost/xp/xml_1.php', .F.)
oHTTP.SEND(cXML)
? oHTTP.STATUS
cRt =3D oHTTP.responseText
SET SAFETY OFF
STRTOFILE(cRt,'cli.xml',4)
MESSAGEBOX( cRt )
oHTTP =3D NULL
ENDPROC
PROCEDURE GetMetadata
LPARAMETERS cTable
CLEAR
oHTTP =3D CREATEOBJECT("Microsoft.XMLHTTP")
oHTTP.OPEN("GET", 'http://localhost/xp/metadata_fb.php?
table=3D'+UPPER(cTable), .F.)
oHTTP.SEND()
? oHTTP.STATUS
cRt =3D oHTTP.responseText
SET SAFETY OFF
oHTTP =3D NULL
STRTOFILE(cRt,'xx.html',4)
XMLTOCURSOR(cRt,"xx",0)
BROWSE NORMAL
PROCEDURE SendPostParam
FOR i =3D 1 TO ALEN(params)
IF i>1
parameterString =3D parameterString + "&"
ENDIF
parameterString =3D parameterString + params[i][1] + =93=3D=94 +
encodeURI(params[i][2])
oHTTP =3D Create Object("Microsoft.XMLHTTP")
oHTTP.Open("POST", "http://fox.wikis.com/wc.dll", .F.)
oHTTP.setRequestHeader('Content-Type', 'application/x-www-form-
urlencoded')
oHTTP.Send(parameterString)
ENDFOR
ENDPROC
FUNCTION urlEncode
PARAMETERS tcValue, llNoPlus
LOCAL lcResult, lcChar, lnSize, lnX
*** Do it in VFP Code
lcResult=3D""
FOR lnX=3D1 to len(tcValue)
lcChar =3D SUBSTR(tcValue,lnX,1)
IF ATC(lcChar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0
lcResult=3DlcResult + lcChar
LOOP
ENDIF
IF lcChar=3D" " AND !llNoPlus
lcResult =3D lcResult + "+"
LOOP
ENDIF
*** Convert others to Hex equivalents
ENDFOR
RETURN lcResult
ENDFUNC
********************* C=F3digo PHP *************************************
*** xpa_fb.php ***
<?php
$sql =3D $_GET[sql];
require_once 'XML/Query2XML.php';
require_once 'MDB2.php';
$query2xml =3D XML_Query2XML::factory(MDB2::factory('ibase://
$dom =3D $query2xml->getFlatXML($sql, 'Clientes', 'cli');
//header('Content-Type: application/xml');
$dom->formatOutput =3D true;
print $dom->saveXML();
?>
******** fin de c=F3digo *************
Submitted via EggHeadCafe
JSONP AJAX and ASP.NET Demystified
http://www.eggheadcafe.com/tutorials/aspnet/b71ea548-93e0-4cec-9fb1-35f641b83e65/jsonp-ajax-and-aspnet-demystified.aspx
Loading...