Foros del Web » Programando para Internet » PHP »

PHP CON DBF y campos MEMOS

Estas en el tema de PHP CON DBF y campos MEMOS en el foro de PHP en Foros del Web. Holas, por seaca habra algunas ideas de como crear archivos dbf con php pero campos MEMOS ?. Pues estaba pensando en realizarlos de dos formas: ...
  #1 (permalink)  
Antiguo 12/08/2006, 19:18
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
PHP CON DBF y campos MEMOS

Holas,

por seaca habra algunas ideas de como crear archivos dbf con php pero campos MEMOS ?.

Pues estaba pensando en realizarlos de dos formas:


1. Ya que PHP hasta donde se no soporta campos MEMOS, entonces hacer uso de un DLL en windows (o un CLI en linux) para hacer que genere estos archivos .dbf con campos MEMOS. (Pero como?, eso es la problem )

2. Hacer uso de otro lenguahe de servidor que no sea PHP, como java, perl (que hay informacion pero no se entiende mucho, ), ASP (que no se ni pio, ).


Busque por todo lado de como hacerlo pero creo q mas me inclino por la primera opcion.

Espero que alguien tenga buenas ideas para esto, y pueda colaborar con esto a PHP.



Saludos
Gildus
__________________
.: Gildus :.
  #2 (permalink)  
Antiguo 13/08/2006, 05:19
Avatar de jdelozar  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 32
Antigüedad: 11 años, 4 meses
Puntos: 0
¿Como no va a tener un equivalente a los campos memo?
Por ejemplo en los campos tipo blob puedes meter información que nunca podrias meter en un memo.
No te lies generando bases de datos con DBF's. Esto so lo lo debes usar cuando quieras compartir información con una antigua aplicación hecha Clipper o DBase que no merezca la pena migrar.

Un saludo:
Juan R.
__________________
Un saludo:
Juan
  #3 (permalink)  
Antiguo 13/08/2006, 05:38
Avatar de jdelozar  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 32
Antigüedad: 11 años, 4 meses
Puntos: 0
Y repasando veo que el tipo text de mysql, sería el equivalente al campo memo de DBase o MSSQL.

Un saludo:
Juan R
__________________
Un saludo:
Juan
  #4 (permalink)  
Antiguo 14/08/2006, 20:35
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Creo que no me entendistes amigo mio, no es cuestion de migrar, es cuestion de compartir datos con un sistema como tu lo dijists antiguo, pero asi es.

Ahora el campo text de mysql NO es equivalente al campo MEMO en aplicaciones de Fox, ;)


Solo queria saber si tenian alguna idea de como seguir este caso.


Saludos
Gildus
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 14/08/2006, 20:37
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Espero que alguien me guien en esto
__________________
.: Gildus :.
  #6 (permalink)  
Antiguo 15/08/2006, 12:29
Avatar de jdelozar  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 32
Antigüedad: 11 años, 4 meses
Puntos: 0
Perdona, está claro que no te había entendido en absoluto.
Yo te propongo dos soluciones medianamente complejas.

Si tu servidor es Windows, podrías crear a modo de pasarela, una aplicación Clipper (.exe) que invocaras desde PHP pasándole por parámetros la tabla y condiciones de la consulta que deseas hacer. Esta aplicación simplemente pintaría los resultados de la consulta por la salida estándard de manera que solo la tienes que recojer. Esto en Clipper lo puedes hacer usando macros (&).
Código PHP:
$salida shell_exec('aplic.exe tabla condición'); 
La otra consiste en desgranar el formato de los archivos DBF y DBT para localizar el dato en el archivo de forma binaria.
Los archivos DBT contienen los datos de los campos memo y en el DBF el espacio reservado para el memo lo único que contiene es la posición y la longitud del contenido dentro del DBT, correspondiente a cada registro.
Hace mucho que no hago nada con DBF pero en su época trabajé mucho en ello y tengo en algún lugar oculto mucha información para hacer lo que te digo. En cuanto la localice la posteo.
__________________
Un saludo:
Juan
  #7 (permalink)  
Antiguo 16/08/2006, 20:16
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Holas,

para la primera opcion se entiende un poco mas, pues seria crear un .dll o ejecutable como dije antes, pero la ideas seria como le paso por ejemplo los registros para una tabla de 15 campos, ?.

Ahora para la otra opcion como dices seria editar o crear un archivo .dbf pero seria con archivo .fpt porque los .dbt son para bases de datos, y yo no quiero para bases de datos, solo quiero para una tabla con campos memos (en realidad un campo memo) para FoxPro 2.x, bueno pues, ya tengo la estructura del DBF y FPT pero ahora no tengo idea de como escribir los datos, en formato ASCII?, en bytes?, en que formato los escribo, ?.

En lo personal optaria por hacerlo TODO en PHP, , se que se puede, pero la idea es que me orienten, .


Haber si me podrian aconsejar para que metodo es mas optimo.


Saludos
Gildus
__________________
.: Gildus :.
  #8 (permalink)  
Antiguo 17/08/2006, 06:35
Avatar de jdelozar  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 32
Antigüedad: 11 años, 4 meses
Puntos: 0
Los archivos FPT son esclusivos de FoxPro, que yo no manejo. Los DBT son el equivalente de los antiguos Dbase y Clipper.
Si manejas FoxPro, lo tienes mucho mas fácil, porque podrías crear algún componente tipo COM con el que puedes interactuar desde PHP.

Otra idea que se me ocurre, no puedes acceder a la base de datos de Fox, utilizando ODBC desde PHP?
__________________
Un saludo:
Juan
  #9 (permalink)  
Antiguo 17/08/2006, 08:49
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Holas,

pues con ODBC no lo intente, , esto seria super si estoy en un server windows, .


Pero en Linux?, .

no intente con lo del ODBC lo intento ahora, .

Saludos
Gildus
__________________
.: Gildus :.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:59.