Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Enlace Fox con PHP

Estas en el tema de Enlace Fox con PHP en el foro de Bases de Datos General en Foros del Web. Hola que tal? tengo un problemita con una extracción de datos de una BD en VisualFox. Tengo instalado apache,php,mysql y Fox en el mismo servidor. ...
  #1 (permalink)  
Antiguo 15/09/2009, 13:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Enlace Fox con PHP

Hola que tal? tengo un problemita con una extracción de datos de una BD en VisualFox.

Tengo instalado apache,php,mysql y Fox en el mismo servidor. La BD de VFP es de una aplicación desktop y necesito desplegar información via WEB.

Ya tengo realizado la conexión via Odbc con la BD y la despliego por medio de PHP.
$dsn = "Dsn_FOX";
$user = "";
$pass = "";
$cone= odbc_connect($dsn,$user,$pass);

Solamente que los datos que me despliega no son los correctos. Los datos tipo caracter me despliega correctamente, pero erroneos son los tipo double, me lo esta redondeando, no me despliega los decimales. Ya he tratado de utilizar la función CAST(Cprecio as REAL) o CAST(cprecio as Double) y me despliega errores. Al igual la funcion de Convert y me sige desplegando error como si no reconociera la Funcion. Mi Query lo hago directamente en VisualFox y me funciona a la perfección pero al pasarlo a PHP me marca error "funcion name is missing".

$sql="SELECT CCODIGOP01, CNOMBREP01, CAST(CPRECIO1 AS TEXT), CDESCRIP01 FROM MGW10005 WHERE CNOMBREP01 LIKE " . "\"%" . $txt_descripcion . "%\"";

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Visual FoxPro Driver]Function name is missing )., SQL state S1000 in SQLExecDirect in C:\xampplite\htdocs\Admin\Files\despliege2.php on line 64
S1000

Existe alguna otra forma de poder extraer estos datos double. En el Manual de la aplicación unicamente dice que son datos flotantes.
Gracias,
  #2 (permalink)  
Antiguo 16/09/2009, 12:11
Avatar de Valery-Net  
Fecha de Ingreso: agosto-2008
Mensajes: 694
Antigüedad: 15 años, 8 meses
Puntos: 12
Respuesta: Enlace Fox con PHP

Si te conectas por ODBC no podrás usar las nuevas funciones de VFP válidas paras las versiones de VFP 7, 8 y 9 debido a que el driver odbc de vfp no se actualiza hace muchos años.

Lo que podrías usar es el oledb provider para vfp que se actualiza frecuentemente.

Para resolver el problema de los decimales podrías enviar antes un comando set decimals por odbc y luego la sentencia SELECT
  #3 (permalink)  
Antiguo 16/09/2009, 12:22
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Enlace Fox con PHP

Edita tu php.ini y agrega esta línea:
extension=dbase.so
Reinicias tu apache y luego te conectas.
Aqui tienes una idea de como hacerlo
http://us.php.net/manual/en/ref.dbase.php
  #4 (permalink)  
Antiguo 17/09/2009, 16:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Enlace Fox con PHP

Gracias por el tip, cambie mi conexion via OLEDB y funciono perfecto. Saludos,

Cita:
Iniciado por Valery-Net Ver Mensaje
Si te conectas por ODBC no podrás usar las nuevas funciones de VFP válidas paras las versiones de VFP 7, 8 y 9 debido a que el driver odbc de vfp no se actualiza hace muchos años.

Lo que podrías usar es el oledb provider para vfp que se actualiza frecuentemente.

Para resolver el problema de los decimales podrías enviar antes un comando set decimals por odbc y luego la sentencia SELECT
  #5 (permalink)  
Antiguo 18/09/2009, 04:58
Avatar de Valery-Net  
Fecha de Ingreso: agosto-2008
Mensajes: 694
Antigüedad: 15 años, 8 meses
Puntos: 12
Respuesta: Enlace Fox con PHP

Cita:
Iniciado por Sneeb Ver Mensaje
Gracias por el tip, cambie mi conexion via OLEDB y funciono perfecto. Saludos,
Genial, como te dije el odbcs de vfp no se ha actualizado hace años, el odbc es una tecnología en decadencia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:45.