FoxyDb 1.0 Estable Listo para descargar

643 views
Skip to first unread message

Antonio Meza

unread,
Oct 27, 2014, 3:05:00 PM10/27/14
to publice...@googlegroups.com
Hola!!

Para comentarles que por fin eh terminado FoxyDb 1.0, me tomo mas tiempo pero quería que estuviera estable la versión y las pruebas realizadas con la librería en lo personal no eh tenido problemas.

Aquí les dejo el Blog donde estoy documentando la librería y pueden descargar. en el menú BLOG iré anunciando todo lo referente a FoxyDb.



P.D. Los que deseen apoyarme en documentar la librería, mejorarla, agregar otros servidores de bases de datos o quieran ayudar con ejemplos serán bien recibidos.

saludos
Antonio Meza

edgar suarez kummers

unread,
Oct 27, 2014, 3:18:11 PM10/27/14
to publice...@googlegroups.com
Hace años nos reunimos ex alumnos del colegio.
Entre ellos había una señora, de mi edad que me dijo así:
"Esa barba azul tuya, increíble, pero como no decías nada."
Yo barbé a los 11 años y esa mujer cuando era chica me enloquecía mirarla, pero fuera de soñar con ella nunca le dije nada de nada.
 
Lo digo es para insinuar que cuando coloquen un proyecto que les ha tomado tiempo hacerlo por favor digan:
 
Para qué coños es ese proyecto.
 
En la televisión ocurre mucho en los comerciales, compre esto, compre aquello, tal vez venderían más si dijeran para qué coños es lo que ofrecen. He dicho.

Antonio Meza

unread,
Oct 27, 2014, 3:41:43 PM10/27/14
to publice...@googlegroups.com
jajaj me extraña de ti mi estimado y buen amigo edgarkummers que en otros mensajes de FoxyDb me has felicitado jajaja

Bueno ahí en el blog esta que es FoxyDb.

¿Que es FoxyDb?

Es una librería Gratis (OpenSource) para Visual Fox Pro 9.0 sp2 que nos permite conectarnos a servidores de Bases de Datos como Mysql, MariaDB, FireBird de forma transparente para el Programador, en el futuro PostgreSQL, Sql Server, (y porque no otros mas), con solo cambiar una simple propiedad de la librería funcionara de forma transparente con cualquier servidor de datos sin cambiar una sola linea de tu código, bueno solo los parámetros de conexión a los diferentes servidores.

saludos
Antonio Meza

edgar suarez kummers

unread,
Oct 27, 2014, 4:03:33 PM10/27/14
to publice...@googlegroups.com
Buenas Antonio Meza:
Te he felicitado porque mereces una felicitación por tu esfuerzo y por compartirlo con el grupo.
Pero es que no has sido la única persona que recomendando algún código, sin duda alguna muy valioso, no explica para qué es.
Disculpa la acotación, ya me ha quedado clarísimo.
 
 

Antonio Meza

unread,
Oct 27, 2014, 4:17:47 PM10/27/14
to publice...@googlegroups.com
Pero la verdad tienes razón, y te agradezco la observación!! no todos estamos pendientes de lo mismo y ni tenemos presente los códigos.

saludos
Antonio Meza

Carton Jeston

unread,
Oct 27, 2014, 4:28:58 PM10/27/14
to publice...@googlegroups.com
Desde hace algun tiempo llevo siguiendo en este foro el proyecto foxydb, asi que no hacia falta presentacion aunque bien observado, porque quien se encuentre el hilo no sabe de que trata. Hay una marca de papel higienico Foxy que gasta mucho dinero en publicidad, asi que la gente puede pensar foxy+db=base de datos de mierda jajajaja

Ahora en serio, felicidades por el trabajo, me la voy a bajar inmediatamente y en cuanto me libere un poco de trabajo le voy a dedicar tiempo para ver como puedo adaptar mi aplicacion a la nueva libreria.

un saludo

Carton Jeston

unread,
Oct 27, 2014, 4:40:52 PM10/27/14
to publice...@googlegroups.com

Sobre la documentacion, se que estas ahora mismo en ello... ahi va un fallo en la guia rapida...

c) Usando la función .Use()

Al igual que .Query() todos los cursores devueltos por .Use() son administrados por FoxyDb. Ahora vamos a realizar el mismo ejemplo de inciso b) pero usando .Use():

oDb.Use("usuariosowser

Ahi se corta



Antonio Meza

unread,
Oct 27, 2014, 4:51:28 PM10/27/14
to publice...@googlegroups.com
Hola Carton!!

Revise y aparece completo, pero con Chrome, y luego entre con IExplorer y si aparece cortado, puedes checar si con Chrome aparece bien?

Victor Espina

unread,
Oct 27, 2014, 9:44:25 PM10/27/14
to publice...@googlegroups.com
Enhorabuena Antonio.

Si te soy honesto, hubiera preferido que mantuvieras el nombre de "DBVFP" ya que FoxyDB se parece demasiado a "FoxDB" y eso podria traer confusiones en el futuro, pero resulta que ambos dejamos saber esos nombres el mismo dia, asi que no tengo bases para pedir nada.

Dicho esto, excelente trabajo y esfuerzo el tuyo.


Victor Espina

Antonio Meza

unread,
Oct 27, 2014, 10:38:00 PM10/27/14
to publice...@googlegroups.com
De hecho recuerdo ese día donde aparecieron los dos nombres, y bueno hay un dominio foxydb.com que es una librería también OpenSource pero sobre JavaScrip. que cosas no!!!

Realmente el nombre lo base mucho en FoxyPreview principalmente, y luego la similitud FoxBarcode, que son mas conocidos, de ahí la idea de FoxyDb.

Esperemos que en el futuro no cause algún mal entendido, porque de hecho ha pasado con otras librerías donde se confunden los nombres y se arma la polémica de que o quien, si no mal recuerdo paso con una sobre menús tipo Office.

Saludos y gracias por los comentarios!!
Antonio Meza

ZeRoberto

unread,
Oct 27, 2014, 10:48:33 PM10/27/14
to publicesvfoxpro
Bueno Sr. Víctor Espina en todo caso ud. tendrá que adoptar el nombre de DBVFP.

Douglas Sánchez

unread,
Oct 27, 2014, 11:01:16 PM10/27/14
to publice...@googlegroups.com
Buen aporte Anotonio.

Hola Victor, y porque no un BD2VFP, DBMS2VFP, Fox2dbms... creo que seria mejor y asi no va haber similitudes, y aproposio cuando tendremos el primero demo de foxdb.

Saludes 

Dsanchez

HernanCano

unread,
Oct 28, 2014, 2:02:55 AM10/28/14
to publice...@googlegroups.com
Douglas:
Ya está.
En el blog verás las instrucciones para un"test".

Carton Jeston

unread,
Oct 28, 2014, 4:42:56 AM10/28/14
to publice...@googlegroups.com
Hoy he mirado y si funciona. He usado el mismo pc y el mismo navegador (firefox) en windows 7 32... si has cambiado algo o actualizado el post, lo ha arreglado. Con internet explorer 11 tampoco hay problema.

Sobre el nombre, me gusta mas foxydb de Antonio Meza o el foxdb de Victor Espina, no veo lio en eso.

Sobre el nombre anterior o los propuestos, me parecen "antinaturales" cuando fox es uno de los lenguajes de sintaxis mas "humana", nosotros tenemos que inventarnos nombres para maquinas (rd2d, 3po, etc). Si, suenan bien, pero me quedo con lo sencillo... :-D

un saludo

Martin´S Consultora Informatica

unread,
Oct 28, 2014, 9:12:02 AM10/28/14
to publice...@googlegroups.com
Muchas felicidades a Antonio por la clase, haciendo pruebas me sale este error, yo uso {MySQL ODBC 3.51 Driver}

codigo:

CLEAR 
Public oDb
oDb = NEWOBJECT("foxydb","foxydb.prg")
? oDb.Version
? oDb.test()
? oDb.Connect()

?oDb.Sql("Select * from clientes_mysql","clientes_mysql")
browse

--
"CIM" Consultoria Informatica Martin´S
--
La información contenida en este mensaje electrónico tiene carácter
CONFIDENCIAL, está dirigida únicamente al destinatario de la misma y
sólo podrá ser usada por éste. Si el lector de este mensaje no es el
destinatario del mismo, se le notifica que cualquier copia o
distribución de éste se encuentra totalmente prohíbida. Si usted ha
recibido este mensaje por error, por favor notifique inmediatamente al
remitente por este mismo medio y borre el mensaje de su sistema.
Gracias.
errfoxy.png

Jairo Miranda

unread,
Oct 28, 2014, 9:51:29 AM10/28/14
to publice...@googlegroups.com

Que cosa no!!  La madre pare el hijo y todo el mundo quiere ponerle nombre..  a mi en lo personal me parece perfecto ese nombre ya que que tenemos una herramienta muy fuerte  y buena como lo es “FOXY” previewer  , asi que bienvenido “FOXY”  YDb

 

JM

Jose Manuel Urbaez Mendez

unread,
Oct 28, 2014, 10:06:34 AM10/28/14
to publice...@googlegroups.com
Antonio Meza

En la descripcion dice que FoxyDB está para trabajar con MySql 5.5

Fui a descargar MySql 5.5 y el que me aparece es este  MySQL Community Server 5.5.40

Será que es el mismo ?


Antonio Meza

unread,
Oct 28, 2014, 11:49:44 AM10/28/14
to publice...@googlegroups.com
Cualquier versión arriba de 5.5 no debería haber problemas. Para el desarrollo tome las versiones mas actuales de Mysql, MariaDb y FireBird.

saludos
Antonio Meza

Antonio Meza

unread,
Oct 28, 2014, 11:59:45 AM10/28/14
to publice...@googlegroups.com
Hola MartinS !!

Que versión de Mysql estas usando?

Puedes probar si esta instrucción te devuelve verdadero, ya que posiblemente la versión de Mysql que usas aun no la tenia contemplada y es donde te esta marcando el error.

? odb.sql("SET TRANSACTION READ ONLY")

Pero como la mayoría son propiedades se puede cambiar este valor sin problema para que funcione en la versión de Mysql que estas usando si ese es el caso, la otra podría ser el Driver Odbc que solo probé con el 5.1. se ria importante hicieras las pruebas y comentaras.

saludos
Antonio Meza

Jorge González

unread,
Oct 28, 2014, 1:10:08 PM10/28/14
to publice...@googlegroups.com
Me suena a FoxyLady de Jimmy Hendrix jejejeje

Jorge González

unread,
Oct 28, 2014, 1:11:33 PM10/28/14
to publice...@googlegroups.com
Está muy buena la idea. Pero casualmente me encuentro en un proyecto de VFP con PostgreSQL a la cual FoxyDb todavía no maneja, pero seguiremos esprenado

Antonio Meza

unread,
Oct 28, 2014, 1:22:17 PM10/28/14
to publice...@googlegroups.com
No uso PostgreSQL ni SqlServer y agregarlos no debería ser problema, solo que voy a terminar de documentar lo que hace falta en especial las funciones y voy a pasar lo que necesito saber de cada servidor para integrarlo y puedas hacer pruebas.

saludos!!

ZeRoberto

unread,
Oct 28, 2014, 1:23:54 PM10/28/14
to publicesvfoxpro
Pueden usar tambien FoxieDB

MartinS

unread,
Oct 28, 2014, 3:03:54 PM10/28/14
to publice...@googlegroups.com
Antonio, utilizo el MySQL ODBC 3.51 Driver

Martin´S Consultora Informatica

unread,
Oct 28, 2014, 3:11:47 PM10/28/14
to publice...@googlegroups.com
de mysql es lo que tengo instalado

El 28 de octubre de 2014, 15:03, MartinS <marti...@gmail.com> escribió:
Antonio, utilizo el MySQL ODBC 3.51 Driver



mysqlswit.png

Antonio Meza

unread,
Oct 28, 2014, 4:21:41 PM10/28/14
to publice...@googlegroups.com
Para saber que versión de mysql tienes instalada lo podemos ver desde FoxyDb, ejecuta este código, pero igual puede marcar error ya que enviar un Select para obtener este valor, en la captura que envías no aparece la versión de Mysql.

CLEAR 
Public oDb
oDb = NEWOBJECT("foxydb","foxydb.prg")
? oDb.test()
? oDb.Connect()
? oDb.engine_version()

Y me dices que valor te da, en cuanto a la instrucción que te envié te marco error? la puedes ejecutar aquí mismo en esta prueba

CLEAR 
Public oDb
oDb = NEWOBJECT("foxydb","foxydb.prg")
? oDb.test()
? oDb.Connect()
? odb.sql("SET TRANSACTION READ ONLY")

y me dices si dio falso o verdadero y si envio el error SQL
saludos

Martin´S Consultora Informatica

unread,
Oct 28, 2014, 4:31:18 PM10/28/14
to publice...@googlegroups.com

en el ? odb.sql("SET TRANSACTION READ ONLY")
me dio .f.

HernanCano

unread,
Oct 28, 2014, 5:29:33 PM10/28/14
to publice...@googlegroups.com
Jorge:
También me ineteresaría PostgreSQL en FoxyDB.
Si conoces PostgreSQL adecuadamente bien, y gustas, lo podemos "incluir" juntos, pues tenemos los fuentes y así apoyamos a Antonio.

Antonio Meza

unread,
Oct 28, 2014, 6:51:01 PM10/28/14
to publice...@googlegroups.com
Hola MartinS es necesario que me comentes que versión de Mysql estas usando para buscar la instrucción alternativa y puedas continuar con las pruebas.

saludos
Antonio Meza

Carton Jeston

unread,
Jan 15, 2015, 2:34:11 PM1/15/15
to publice...@googlegroups.com
No tengo mucho tiempo para I+D (Idear+Dormir) por dar los ultimos toques a un proyecto pendiente... aun asi me he tomado unas horas libres para trastear con foxydb+firebird. Tenia algun conocimiento de interbase con el tema de mantenimiento, lo cual no me ayudo en absoluto :-)

Descargo el firebird... no, me dice que no lo encuentra pero busco en otra parte de la pagina y ahi esta. Empezamos bien. Me bajo las ultimas versiones 32/64 bits para guardar a buen recaudo y poder instalar en ambas plataformas la misma version 2.5. Por ahi esta la 3 alpha con una novedad que me hubiera venido bien pero esa es otra historia.

Instalo sin problemas y lo unico que cambio es que se ejecute como aplicacion y no como servicio y activo el ibguardian para tenerlo mas a mano.

Pongo el programa full convert y lo configuro y paso automaticamente todas mis dbf. Todas? No. Unas 16 me da errores hasta que buceando por internet dice que los campos LOGICAL del dbf no tiene correspondencia en firebird (la 3 si lo hara) y quiere asignarle el tipo BOOLEAN y no hay modo. La recomendacion es cambiar todo los BOOLEAN por CHAR(3) y dicen que asi evitan tener que cambiar el codigo en mi aplicacion. Eso es algo que aun tengo que probar, pero bastante tengo con tener todos los dbf metidos en una base de datos FDB sin escribir nada... uy, renombro .GDB de interbase por .FDB

Aun asi, se me ha olvidado crear el campo ID (ID Autoincremental Primary Key) en cada tabla de la base de datos para que trabaje bien foxydb internamente. Si ese nombre ya lo estas usando en tus tablas, puedes modificar en el prg de foxydb.

Llegados a este punto, podria haber intentado usar el interbase portable o el prg que convierte dbf a firebird, pero donde queria llegar era a meterle mano al foxydb y ya estaba ahi. Veo que hay una version nueva 1.1 desde Diciembre (no me he enterado de su existencia por aqui)...

https://foxydb.wordpress.com/foxydb-1-1/

Elijo que trabaje con firebird y modifico los valores en el procedimiento TEST, copio algunos ejemplos del blog, le añado un set default to MiBaseDeDatos para no tener lios y alla va!!!!

Error!!! No me jodas que no tengo tiempo. Despues de revisar veo que algunos ejemplos tiene la primera comilla "decorativa" y no la doble comilla de rigor ("). Me acuerdo del Dr. Meza por un momento, asi que aprovecho para saludarle y desearle que revise esos codigos del blog. A todos nos ha pasado alguna vez eso de las comillas :-)

Ya funciona, pero me tira un error que por lo menos no es el tipico 0xA034445543 que te deja cara de poker. Se me olvido un gran detalle, en especial despues de haber formateado mi pc, descargar de la pagina del firebird el driver ODBC, lo hago y ni siquiera lo agrego en el panel de control.

Ejecuto y ya esta. He conseguido ejecutar un BROWSE. Que epico. Ademas le pongo un append blank y veo con sorpresa como lo llena todo de .NULL. lo borro campo por campo y donde es numerico se pone a cero y en caracter se queda vacio. Como debe ser. Eso tengo que mirarlo con mas tiempo. Marco algunos registros para borrarse pero no lo hace. Eso es lo que pasa cuando uno se sale un momento de foxpro :-)

Y esa es la cronica de una conexion anunciada, ahora queda estudiar algunas cosas que se pueden mejorar sobre todo cuando tienes que convertir un sistema DBF a SGDB.

He pensado algunas cosas como una variable AutoCursorEdit, por defecto esta en .F. pero si lo pones en .T. cuando ejecutes use() automaticamente activaria la funcion CursorEdit ( Hacer Cursor editable) ahorrando escribir un comando (no digo de eliminar esa funcion). Esto es especialmente util a la hora de hacer la conversion de una aplicacion completa.

Quizas una funcion parecida a tableupdate()  odb.tableupdate() que llamase a  update y despues a save tambien podria ser util en este sentido.

Se me ocurren mas cosas, y solo lo comento por unas primeras impresiones, sin conocer lo que tengo entre manos lo suficiente para saber si son opiniones utiles o fuera de lugar.

A pesar de que parece una especie de suplicio llegar a este punto, no lo ha sido, solo lo he dramatizado un poco por hacer algo de espectaculo :-D

Lo cierto es que ha resultado bien interesante, pero antes de meterme a modificar toda mi aplicacion, tengo que estudiarlo bien porque no va ha ser nada facil.

un saludo

Antonio Meza

unread,
Jan 15, 2015, 5:31:28 PM1/15/15
to publice...@googlegroups.com
Hola Carton, honestamente no entendí nada jajaj

Si puedes mostrarme el código donde tienes duda para ayudarte.

Bueno, en lo que comentas de CursorEdit, en dbvfp lo tenia, pero obliga a realizar validaciones y darle mas responsabilidad a la función Use(), la idea es que cada función este lo mas limpia y sencilla posible, el código sea mas fácil de entender y mejorar o corregir.

saludos
Antonio Meza

Carton Jeston

unread,
Jan 16, 2015, 2:09:58 AM1/16/15
to publice...@googlegroups.com

Dentro del procedimiento use, al final del mismo:

if autocursoredit
odb
.cursoredit(TABLA_EN_PARAMETRO_FUNCION_USE)
endif

Por defecto, la variable autocursoredit es .f. pero si la activo, cuando hago un use comprueba si esta activa y llama a la funcion cursoredit() pasandole el parametro con el nombre de la tabla use.

Por ejemplo.

autocursoredit=.t.
odb.use("clientes")
odb.use("proveedores")
odb.use("articulos")

Es este caso al abrir clientes, dentro de la funcion use comprueba si autocursoredit esta activo y hace:

odb.cursoredit("clientes")

Y si quieres usarlo por separado, segun la necesidad del momento o de cada uno, pones autocursoredit=.F. y trabajas en el modo estandar de siempre.

Yo voy a ir implementando esto y alguna cosa mas como esto (no lo he desarrollado, es una idea sobre "papel"):

odb.tableupdate()

Esta funcion sustituiria al tableupdate(.t.) y haria algo asi...

IF oDb.CursorChanges(TABLA_ACTUAL_SELECCIONADA")
IF oDb.Update(TABLA_ACTUAL_SELECCIONADA)
         IF oDb.Save()
            *WAIT WINDOWS "
Registro Guardado" TIMEOUT 1
         ENDIF
      ENDIF
ENDIF


Ahi no tiene control de errores ni nada, solo es el modo mas simple de exponer la idea. Esto es util para lo que migramos desde dbf, funciones mas genericas que agrupan otras subfunciones y es lo que hace comodo de trabajar a foxpro ademas de la sintaxis.

Lo bueno de esto es que me funcionara en la mayoria de mi aplicacion cambiando =tableupdate(.T) por odb.tableupdate() o algo similar. Y si en algun caso esto no me sirve, siempre puedo hacerlo como siempre, funcion por funcion.

Es demasiado pronto para ser mas exacto, creo que cuando intente pasar mi aplicacion completa ahi vere si los cambios que propongo son utiles o no.

un saludo

Antonio Meza

unread,
Jan 16, 2015, 10:17:06 AM1/16/15
to publice...@googlegroups.com
Te comento que debe tener cuidado al usar Update y CursorEdit, ya que Update es por cursor y activa una transacción local nativa de VFP y una transacción del servidor remoto mysql, firebird, mariadb, y una vez que esta activa ya no puedes usar CursorEdit, porque VFP te marcara error de buffer porque hay una transacción activa.

En cuanto a Update y Save dentro de oDb.TableUpdate, también tienes que tener cuidado porque eso aplicaría cuando solo tienes un cursor que vas a manipular, pero si tienes 2 o mas cursores no debes aplicar Update a un cursor y luego SAVE() porque los otros cursores no se actualizarían en el servidor.

saludos
Antonio Meza

Jairo Miranda

unread,
Jan 16, 2015, 12:54:06 PM1/16/15
to publice...@googlegroups.com

Como instalar Foxydb  en mi pc y en IIS?

 

JM

Antonio Meza

unread,
Jan 16, 2015, 1:09:50 PM1/16/15
to publice...@googlegroups.com, sandrae...@gmail.com
Hola Jairo!!

Foxydb no es una DLL, es un conjunto de funciones dentro de un archivo PRG de VFP y solo corre dentro de VFP.

saludos
Antonio Meza

Martin´S Consultora Informatica

unread,
Jan 16, 2015, 2:45:51 PM1/16/15
to publice...@googlegroups.com
Hola a todos, alguien seria tan amable de pasarme los links de los ODBC e instaladores correctos para poder hacer correr la librería
gracias

Antonio Meza

unread,
Jan 16, 2015, 5:25:55 PM1/16/15
to publice...@googlegroups.com
Pero de que motor te interesa?

Puedes descargar mariadb 10.0.15 la mas reciente

Puedes descargar Mysql 5.6

y bajas el driver ODBC de la pagina de mysql 5.1.13 te recomiendo no he hecho pruebas con el 5.2, del lado derecho de la pagina dice "Looking for the latest GA version?" le das click ahí para que te permita seleccionar el 5.1.13

http://dev.mysql.com/downloads/connector/odbc/

Nota: El mismo te sirve para Mariadb

Para Firebird la 2.5.3

y el driver odbc

Ya dependerá si deseas a 32 o 64, tanto cualquier servidor de base de datos y su drive odbc.

saludos
Antonio Meza

Martin´S Consultora Informatica

unread,
Jan 16, 2015, 9:43:10 PM1/16/15
to publice...@googlegroups.com
muchas gracias antonio

Martin´S Consultora Informatica

unread,
Jan 16, 2015, 9:45:02 PM1/16/15
to publice...@googlegroups.com
es para mysql
Reply all
Reply to author
Forward
Message has been deleted
0 new messages