Interesante articulo DBF desde PHP (no es mio)

885 views
Skip to first unread message

Antonio Meza

unread,
Sep 19, 2014, 2:50:13 PM9/19/14
to publice...@googlegroups.com
Para los que aun usan DBF y quieran abrirlos desde PHP sin usar ODBC u otra cosa aquí esta un articulo que me encontré (NO ES MIO, al rato no quiero que digan que me lo adjudique jajaja)


Saludos
Antonio

narcizo norzagaray

unread,
Sep 20, 2014, 3:36:18 AM9/20/14
to publice...@googlegroups.com
jajaja  ... ya sabemos quienes son los que se los adjudican y son pocos.. jaja el mismo con 4,5 nombres diferentes...saludos

Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426

Carlos Miguel FARIAS

unread,
Sep 20, 2014, 10:48:35 AM9/20/14
to Grupo Fox
Alguna vez estuve analizando el acceso de PHP a dbf.
Creo que hay que tener cuidado cuando se acceden a tablas de VFP 9, donde se usan campos enteros, datetime y los nuevos tipos (varchar y otros). En una epoca, no los reconocia. Pero mi knowleadge sobre el tema tiene fácil 5 años
Eso es creo exclusivo de VFP, y si no es por odbc, no se pueden acceder desde otros lenguajes.
Saludos: Miguel, La Pampa (RA)

mapner

unread,
Sep 20, 2014, 10:57:28 AM9/20/14
to publice...@googlegroups.com
En caso de acceder desde PHP a tablas VFP convendría hacerlo a través de ODBC con la librería PDO.

Saludos

francisco prieto

unread,
Sep 20, 2014, 11:00:50 AM9/20/14
to publice...@googlegroups.com
Desde FreePascal se puede... con algunas limitaciones pero se puede...

Saludos,

Pancho
Córdoba
Argentina

Carlos Miguel FARIAS

unread,
Sep 20, 2014, 11:02:08 AM9/20/14
to Grupo Fox
Desde Python se puede, pero mejor desde VFP ;-D

ZeRoberto

unread,
Sep 20, 2014, 11:02:57 AM9/20/14
to publicesvfoxpro
Quieren migrar a otros lenguajes para usar dbf?

francisco prieto

unread,
Sep 20, 2014, 11:07:25 AM9/20/14
to publice...@googlegroups.com
Roberto,

No, pero eso abre la posibilidad por si estas migrando un sistema grande de vfp y poder hacerlo en forma progresiva.

O bien en el caso web te serviria para hacer una aplicacion web con la informacion que tenes en DBF.

Saludos,

Pancho
Córdoba
Argentina

Carlos Miguel FARIAS

unread,
Sep 20, 2014, 11:07:48 AM9/20/14
to Grupo Fox
VFP se está poniendo viejo, o ya es viejo, y ya no permite todas las cosas que se están demandando ahora.
Parece un calco mio (y eso que no es viernes).
Creo que nos jubilamos a la vez. ;-D

mapner

unread,
Sep 20, 2014, 11:33:27 AM9/20/14
to publice...@googlegroups.com
No es raro que en la migración desde VFP a otros entornos se tenga que seguir manteniendo algunos datos en DBF de sistemas legacy en conjunto con nuevos datos en motores SQL.
O bien puede darse cuando se hacen interfaces desde nuestros propios sistemas hacia otros que no son nuestros.

saludos

ZeRoberto

unread,
Sep 20, 2014, 11:45:54 AM9/20/14
to publicesvfoxpro
Pero si al pasar a otro lenguaje significa recodificar todo, y para que dejar las tablas en DBF

Antonio.xt

unread,
Sep 20, 2014, 12:00:46 PM9/20/14
to publice...@googlegroups.com

O tambien podrias estas desarrollando un sistema nuevo en PHP completamente diferente y para otra finalidad, y tal vez necesites consultar datos del sistema existente que esta en VFP con tablas nativas, es un caso muy comun.

Carlos Miguel FARIAS

unread,
Sep 20, 2014, 1:01:39 PM9/20/14
to Grupo Fox
Cuando desarrollas un sistema nuevo, en reemplazo de otro, es muy posible que te encuentres en situación de mantener un paralelo operativo entre ambos sistemas.
Mi estratégia de migración es:
1º) Convertir los datos a la nueva base de datos (estos programas se usan permanentemente hasta 6.
2º) Empezar a replantear la nueva interfaz de usuario (esto en paralelo de lo que sigue)
3º) Programar la salida de información (reportes, gráficos, consultas); además, se sigue con 2)
4º) Programar todos los procesos de conversión de datos (cálculos, controles sobre datos, etc.); además, se sigue con 2)
5º) Programar la nueva interfaz de usuario, hasta que el usuario te de el si. Si, SI!!
6º) Implantación Final

O sea, que hasta que no estás en el último signo de admiración del paso 5º, vas a seguir convirtiendo datos del sistema legacy al nuevo, por lo que las rutinas de leer los sistemas viejos y pasarlos al nuevo, serán permanentes, porque con el sistema nuevo, no tendrás software para carga hasta casi el final.

Uds se preguntaran porque este esquema. Es para calmar las fieras.

Si empezamos por la interfaz del usuario, el usuario se encontrará con que tiene que cargar los datos en ambos sistemas, porque no hay resultados con el nuevo que sean útiles y además doble trabajo, cargar en el nuevo, además del engorro de aprender a usarlo, se le suma que a lo mejor está hasta las manos con el anterior.

Por lo tanto, no le dan bola, le presentan resistencia al cambio, además tampoco pudieron opinar bastante y no los pudiste hacer formar parte del proyecto (usuario: "lo hicieron con florcitas y puntillitas como a mi me gusta" ;-)

Entonces, con el esquema que planteo, el usuario va participando en el sistema nuevo (el ve la interfaz de usuario, principalmente) y hará algunas pruebas de los prototipos, pero ve que no se desloma duplicando el trabajo, la prueba en el prototipo es como se prueban "la ropa a medida".

Y además, nos permite ir haciendo ajustes en la bd porque podremos detectar si las consultas y reportes funcionan al menos tan bien como el legacy. Y eso solo es factible si los procesos internos (cálculos) se convirtieron apropiadamente.

Y creo que, reelaborar la interfaz del usuario con el sistema, es lo que más tiempo lleva, y convencer al usuario de usar el nuevo sistema, si este estuvo involucrado en los ajustes, resistirá menos al cambio.

A los jefes, le interesan los resultados, a los usuarios de carga, que la cosa sea más fácil y no hacer laburo duplicado.
De la manera que lo planteo, los jefes ven resultados mucho más rápido (y posiblemente, chiches que el sistema anterior, aún contando con los datos, no lo hacían, me ha pasado).

Los usuarios en general, cuando empiezan a cargar datos en el nuevo, casi no hacen paralelo, cargan y hay resultados.

Todos contentos y nosotros con los billetes dentro.

Al menos, así lo veo yo.

Saludos: Miguel, La Pampa (RA)


Gustavo Mora Rivera

unread,
Sep 20, 2014, 1:02:59 PM9/20/14
to publice...@googlegroups.com
buenas,, esto por desarmar un programas que me supsera los 30megas compilado en varios modulos para que sea mas facil,,,,  alguien con tips, tecnicas y consejos para hacerlo....

si debo hacer un proyecto por cada modulo.. como hacer con las imagenes que son usadas por varios modulos, etc etc

francisco prieto

unread,
Sep 20, 2014, 1:23:19 PM9/20/14
to publice...@googlegroups.com
Gustavo,

para ese tipo de emprendimientos hago...

1) un proyecto por cada modulo
2) un directorio de comunes... y soy de las personas que si un formulario es comun va en comunes... te aclaro esto porque la tendencia es que los proyectos no compartan nada...

Saludos,

Pancho
Córdoba
Argentina

Gustavo Mora Rivera

unread,
Sep 20, 2014, 2:44:33 PM9/20/14
to publice...@googlegroups.com
asi es como los estoy trabajano.  pero por ejemplo si un proyecto tiene un elemento que usa la misma imagen al compilarlos la integra,,o sea en cada exe, iria la misma imagen lo que hace que sea igual de pesado (aclaro que la mayoria de imagenes van en una carpte compartida pero otras por copyright u otras cosas debe estar dentro del exe. entonces si el exe principal estan integradas pero no las mas integro dentro de los demas, no las visualiza,  ahora no se si el set procedures o algo similar me permite ver estos elemenos del exe "madre"

otro asunto es que en el exe madre en el boton "FACTURACION"  me corre "do facturas.exe"  y me carga el exe,, todo perfecto y me sale, y queda de nuevo el principal, pero luego que sale, el exe de facturacion queda de alguna forma activo, pues aunque en el el administrador de tareas de windows no se ve,, si quiere eliminar o cambiar el nombre al exe, no se puede pues dice que esta ocupado...

francisco prieto

unread,
Sep 20, 2014, 6:15:18 PM9/20/14
to publice...@googlegroups.com
Gustavo,

A ver si los dividis en modulos no van a pesar menos en su totalidad van a pesar mas.... la división en módulos no es para que pese menos sino para que el mantenimiento sea mas practico...

En cuanto a tu problema es así... si vos llamas a un exe desde dentro y este esta en memoria aunque inactivo no lo podes tocar... es solo lectura....

La técnica para cambiarlo es tener un exe principal que no haga nada solo llame al sistema, de modo que lo único que queda en memoria es este primer exe con el do al sistema principal.

Saludos,

Pancho
Córdoba
Argentina

Patricio Muñoz

unread,
Sep 20, 2014, 6:21:42 PM9/20/14
to publice...@googlegroups.com
para solucionar el problema de los exe . He visto que lo llaman desde DOS y una vez que el exe termina su ejecucion, en el programa principal (El que llama el exe) colocan la instruccion KILL del DOS y con eso matan completamente el proceso del exe que fue invocado... la sintaxis del KILL no lo recuerdo pero buscalo en google es facil.

Bendiciones
--
Patricio Muñoz
Pro&Tech
Analista en Sistemas

Gustavo Mora Rivera

unread,
Sep 20, 2014, 6:44:57 PM9/20/14
to publice...@googlegroups.com
no se si me explique bien..   en el exe madre, o menu estan los botones que llaman cada uno a un exe de un modulo aparte,,,   el asunto es que al cerrar uno de los exes, submenus,,,,  no se ven el admin de tareas de windows, no satura menoria pero bloquea el archivo exe en si... 

ZeRoberto

unread,
Sep 20, 2014, 6:54:35 PM9/20/14
to publicesvfoxpro
Mi no entender

.

francisco prieto

unread,
Sep 20, 2014, 7:36:36 PM9/20/14
to publice...@googlegroups.com
Si, Gustavo...

Eso se arregla con la tecnica que te dije...

Saludos,

Pancho
Córdoba
Argentina

Gustavo Mora Rivera

unread,
Sep 20, 2014, 8:02:57 PM9/20/14
to publice...@googlegroups.com
creo que asi lo tengo roberto
 
 
tengo una pantalla con botones que llama cada boton un sistema aparte,,, pero ojo,, ya en VFP6 tenia algo asi hace anos... incluso al arvhico lo renombre archivo.exe y le puse archivo.dll,,,,  para evitar curiosos,,,,  se me ocurrio poner en uno de los botones que cargara este .dll  como lo hacia en vfp6  y me dio error (ahora estoy en vfp9 por cierto),,,   entonces lo renombre como archivo.exe     y funciona perfecto, lo carga, y al salir lo libera completo, en el explorer puede renombrarlo borralo etc, o sea no esta bloqueado, pero los que tengo en vfp9 no se libera del todo, aunque no se vea en el taskmaganer,  no se puede tocar en el explorer..

si tienen alguna idea del porque?   mientras voy a revisar propiedad por propiedad el VFP6 vs el que esta en VFP9 a ver si omiti algo.

edgar suarez kummers

unread,
Sep 20, 2014, 8:33:01 PM9/20/14
to publice...@googlegroups.com
BEYOND COMPARE 3 seria formidable para tu caso. 

ZeRoberto

unread,
Sep 20, 2014, 10:42:25 PM9/20/14
to publicesvfoxpro
Si se queda en memoria significa que no estas limpiando el READ EVENTS Tienes que crear una función que haga un CleanUp() osea que limpie todo antes de cerrar

ON SHUTDOWN Do CleanUp

*/--- CleanUp() del Tastrade
PROCEDURE CleanUp
For Each loForm In Application.Forms
    If Type("loForm") == "O" And loForm.BaseClass == "Form"
       If !loForm.QueryUnload()
          Return .F.
       EndIf
       loForm.Release()
    EndIf
EndFor
Return .T.

Gustavo Mora Rivera

unread,
Sep 22, 2014, 4:10:27 PM9/22/14
to publice...@googlegroups.com
ya logre identificar porque en las aplicaciones "secundarias" no se liberan del todo,, ya logro que corran bien y se liberan del todo, pero pongo un elemento con una clase hecha por mi, y ya cuando le pongo esta clase y salgo del exe, (sin salir de exe menu), no se me libera, asi que tiene que ser algo con las clases,, pongo en el botton de salida

set classlib to   y tampoco lo libera  alguna pista?

Jose Mario

unread,
Sep 22, 2014, 5:05:13 PM9/22/14
to publice...@googlegroups.com
lo tenes en PHP, la aplicacion
aqui esta la respuesta, como ese es el tema






El sábado, 20 de septiembre de 2014 18:02:57 UTC-6, Gustavo A. Mora Rivera escribió:

Reply all
Reply to author
Forward
0 new messages