Comunidad de diseño web y desarrollo en internet online

Conectar Php con Foxpro

Citar            
MensajeEscrito el 07 Dic 2007 02:59 am
Buenas Tardes Necesito Hacer Una Conexion Con Php A Una Base De Datos Dbf Visual Foxpro 9.0, En Si El Proyecto Esta En Mysql, Pero El Mismo Proyecto Debe Conectarse Esa Base De Datos Para Recuperar Informacion, Para Luego Agregarse A Otra Base Mysql Espero Alguien Sepa Como Hacer Esto. Gracias.

psta. e intando hacerlo mediante odbc la cual funciona pero a la hira de hacr el selec y enviar la consulta para que recupere datos manda un error bien jodido, si alguien sabe otra forma de hacerlo esto le agradecere toda la vida, gracias.

Por serfune

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 07 Dic 2007 02:24 pm
mmmmm

Comunicar PHP con vfox... podrias hacer q se comuniken mediante xml... o sea...

Te creas un archivo PHP q haga toda la consulta a la base de datos... pero lo q te devuelve seria un xml... por ejemplo

Código :

<?
header('Content-Type: text/xml'); //Indicamos al navegador que es un documento en XML
echo <?xml version="1.0" encoding="iso-88859-1"?>; //Versión y juego
?>
<personas>
<?
$sql = "SELECT * FROM personas"
$r = mysql_query($sql);
while($row = mysql_fetch_array($r)){
?>
   <persona>
      <nombre><?=$row["nombre"]?></nombre>
      <apellido><?=$row["apellido"]?></apellido>
   </persona>
<?}?>
</personas>


Luego tomas este xml desde vfox y lo parseas y tenes todos los datos


Saludos

Por 3w

145 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Dic 2007 02:38 pm
La solución que te da 3w se me hace la más correcta.

Además en FoxPro a partir de la versión 8 si mal no recuerdo, tienes funciones nativas para convertir XML a Cursores de Fox.

Mi primera opción sería que buscaras el error de tu consulta con el ODBC, si sigue sin funcionar, interacciona ambos con XML.

Por Reymond

Claber

1111 de clabLevel

5 tutoriales
1 articulo

Genero:Masculino  

Mobile developer

firefox
Citar            
MensajeEscrito el 07 Dic 2007 06:42 pm
bien miren este es mi codigo para conectarme al odbc

1 <?
2 $cnx = odbc_connect("prueba", "", "");
3 if($cnx) {echo "Conecto ODBC<br>";}
4 $mSql="select * from usuario where id=1";
5 $m = odbc_do($cnx,$mSql);
6 $num=odbc_num_fields($m);
7 if ($m){echo "ye con la tabla<br>".$num." Cantidad de registros encontrados";}
8 odbc_close($cnx);
9 ?>


el error que sale es el siguiente

Conecto ODBC

Warning: odbc_do() [function.odbc-do]: SQL error: [Microsoft][ODBC Visual FoxPro Driver]Not a table., SQL state S0002 in SQLExecDirect in C:\AppServ\www\po\index.php on line 5

Warning: odbc_num_fields(): supplied argument is not a valid ODBC result resource in C:\AppServ\www\po\index.php on line 6
(Claro que es te mensaje de advertencia es opor consecuencia de no haver enviado correctamente el odbc_do), alguna sugerencia porfavor.

Por serfune

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 15 Dic 2007 03:50 pm
se pude conectar con ADO.php pero solo es para windows, si alguien tiene los driver para linux seria genial, el driver se llama vfpoledb.exe solo pónganlo en www.googlenegro.inc.md y les saldra el descargable, la versión de windows xp ya tiene incorporada este driver pero el server 2003 que en si es donde tiene que estar no lo tiene, asiq ue a descargarlo suerte y gracias. acá esta el código disfrútenlo.

<?
$conn = new COM("ADODB.Connection");
$conn->Open("Provider=vfpoledb.1;Data Source=D:\Mis documentos\Miguel\VisualFoxPro6.0\Practica03\Notas.dbc;Collating Sequence=MACHINE");
//aca se define la ubicación de tu dbf
//Si es un dbf no te olvides de poner "GENERAL" en vez de MACHINE

$cod='OOA109';
$ma_sql="SELECT count(*) from Alumnos where Cod_alu='$cod'"; //HAcemos un conteo de nuestros campos en con filtro Cod_alu
$rs = $conn->Execute($ma_sql);
$usu=$rs->fields[0];

$mas_sql="SELECT * from Alumnos where Cod_alu='$cod'";
$res = $conn->Execute($mas_sql);
$x=0;
while ($usu>$x){
$nombre=$res->fields[1];
$dir=$res->fields[3];
echo "Nombre del Alumnos <b>".$nombre."</b> Direccion: <b>".$dir."</b><br>";
$res->MoveNext();
$x++;
}
$rs->Close();
$res->Close();
?>

Por rockmuerte.inc.md

0 de clabLevel



Genero:Masculino  

peru

firefox
Citar            
MensajeEscrito el 27 Dic 2008 09:41 pm
yo te recomiendo usa el standar xml para el pase de datos genera el xml con el fox como te decia reymond

Por talcual

686 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.