uso de la libreria FoxyDb

379 views
Skip to first unread message

Juan Ramón Hueso Pérez

unread,
Dec 3, 2018, 4:25:34 AM12/3/18
to Comunidad de Visual Foxpro en Español
Necesito ayuda, pues despues de 2 años sin tocar nada de programacion, intento adaptarme a la libreria de Antonio Meza y despues de conectarme a la base de datos en MySql, no hay manero de `poder abrir una tabla.
Y despues de las maravillas que he leido sobre esta libreria, lo cierto es que me gustaria poderla probar para su posterior uso.
Estoy usandi VFP9 SP2 y foxydb 2
Gracias a todos aquellos que me ayuden.

Juan Ramon Hueso.
Lorca
Murcia

Saúl Piña

unread,
Dec 3, 2018, 11:17:45 AM12/3/18
to Comunidad de Visual Foxpro en Español
buenos dias,
ya descargaste y leiste el proyecto del ejemplo para foxyDB? 
es un buen comienzo

HernanCano

unread,
Dec 3, 2018, 2:33:28 PM12/3/18
to Comunidad de Visual Foxpro en Español
Bueno, Juan.
Cuando mencionas

>>> ... después de conectarme a la base de datos en MySql, no hay manera de poder abrir una tabla.

Me queda la sensación de que hay algo extraño en la forma como intentas hacer éso ("abrir una tabla" en lo que a MySQL se refiere).

Así que la mejor rspusta es la que te ha dado Saúl: leer el proyecto del ejemplo para foxyDB.

Debes empezar por ahí para poder ayudarte más.

Juan Ramón Hueso Pérez

unread,
Dec 3, 2018, 3:30:47 PM12/3/18
to Comunidad de Visual Foxpro en Español
Gracias por vuestra respuesta, pero i he leido y seguido las instrucciones paso a paso y abro la conexion al servidor con el ejemplo de foxydb, y me da correcto, pero cuando intento oDb.use("usuarios") o con oDb.sql, me da siempre falso y ese es mi prblema.
No soy capaz de hacer que funcione ni desde la linea de comandos, ni desde un formulario.
En el oDb.test() me hace la conexion a la base de datos aunque yo no la veo (da verdadero en oDb.conect()) pero falso en la apertura de la tabla y ese nombre de tabla existe en mi servidor de MySql.
Gracias.

Saúl Piña

unread,
Dec 3, 2018, 3:43:16 PM12/3/18
to Comunidad de Visual Foxpro en Español
Un ejemplo sencillo para abrir una tabla:

TEXT TO _sqltxt TEXTMERGE PRETEXT 7 NOSHOW
    SELECT
          unidad
       
, id
     
From servicios_unidades
ENDTEXT

IF thisform
.oDb.SQL(_sqltxt,"servicios_unidades")
    IF
Thisform.oDb.CursorOpen("servicios_unidades")
 
  ENDIF
ELSE
    WAIT WINDOW
"Error al abrir Unidades" TIMEOUT .8
ENDIF


HernanCano

unread,
Dec 3, 2018, 3:46:30 PM12/3/18
to Comunidad de Visual Foxpro en Español
Juan Ramón:

>>> ... me hace la conexión ... aunque yo no la veo...

Parece que crees que las cosas con MySQL (u otro motor de bases de datos relacionales) son como en los lenguajes xBase (USE TABLA, INDEX ON ALGO, SEEK ALGO, SKIP, BROWSE, etc).

Las cosas con los motores de bases de datos relacionales no son como con los archivos DBF.

Si sigues adecuadamente el ejemplo que pone Antonio (ajustando en nombre de tu base de datos), debes poder ejecutar sin mayores problemas.

Mira lo que te ha puesto Saúl. ¿Puedes ejecutarlo? Va bien?

Juan Ramón Hueso Pérez

unread,
Dec 4, 2018, 9:38:12 AM12/4/18
to Comunidad de Visual Foxpro en Español
Amigos de verdad que lo siento, pero debe ser que me encuentro un poco senil.
Estoy harto de trabajar con  motor de base de datos en MySql y nunca he tenido problemas, peroooo con FoxyDb -que dicho sea de paso todos los comentarios son estupendos- pero yo lo cierto es que no me entero.
Y la verdad me tiene bastante mosqueado, he probado los ejemplos de la libreria y hasta conectar con la base de datos siempre me da correcto pero cuando intento abrir una de las tablas nunca me la abre.
A ver si con un poco de suerte D. Antonio Meza lee mi problema y es capaz de explicarme que es lo que hago mal.
Y no os molesteis , pues agradezco mucho el esfuerzo de intentar explicarmelo, pero los años no pasan en valde y como es por afición y fidelidad a VFP y con 70 años ya pues no tengo muchas gans de empeza un nuevo lenguaje de programacion.
Y a todas mis  chapuzas me gustaria incorporarles la libreria FoxyDb.
Gracias.
Juan Ramón.

El lunes, 3 de diciembre de 2018, 10:25:34 (UTC+1), Juan Ramón Hueso Pérez escribió:

Saúl Piña

unread,
Dec 4, 2018, 10:49:07 AM12/4/18
to Comunidad de Visual Foxpro en Español
Buenos dias Juan... 

Revisa que el nombre de las tablas esten escritas correctamente, respetando Mayusculas si acaso las hay.. y si deseas puedo asesorarte via teamviewer (dejaría una apertura de tabla desde foxyDB convertido a cursor)

Saludos a todos!

Antonio.xt

unread,
Dec 4, 2018, 10:51:00 AM12/4/18
to Comunidad de Visual Foxpro en Español

Juan Ramon, solo para confirmar...

a que te refieres con "abrir una de las tablas" ?

Te comento porque en los motores de bases de datos no se abren las tablas, al menos no como abrimos las tablas DBF, a las que nos acostumbramos mucho.

La herramienta del tocayo Meza (FoxyDb) te va a ayudar manejar la BDD que uses, y ya estableciendo la coneccion lo demas es mas facil, pero no esperes tener la tabla abierta como en Fox.

Antonio Meza

unread,
Dec 4, 2018, 2:51:52 PM12/4/18
to Comunidad de Visual Foxpro en Español
Hola para poder orientarte al igual que cualquier compañero que usa FoxyDb, es importante que muestres el código que usas y los errores que te muestra, que versión de Mysql tienes, si esta en un servidor Linux o Windows, a demás todas tus tablas deben tener un campo ID autoincrementable, etc.

saludos
Antonio Meza

Juan Ramón Hueso Pérez

unread,
Dec 5, 2018, 4:25:33 AM12/5/18
to Comunidad de Visual Foxpro en Español
Una pregunta Antonio:
Es obligatorio tener un campo autoincrementable?, es que yo no lo he usado nunca
En cuanto a la versión de Mysql es la 5.3
El servidor de MySql esta en un contenedor Docker sobre un servidor Linux.
El codigo que uso es el mismo del ejemplo de la clase cambiando solo los datos de conexion y el nombre de la tabla.
El resultado es verdadero en cuanto a oDb.test(), oDb.conect() es falso esto me sucede ultimamente ya qye antes la conexion daba verdadera,  oDb.Use, o oDb.sql siempre me da falso.siendo lo demas verdadero.

Configuración para la conexion
                CASE this.engine = this.mySql
                    this.handle_driver         = this.driver_Mysql_51
                    this.handle_server        = "nnn.nnn.n.n"
                    this.handle_user        = "xxxxxx"
                    this.handle_password     = "********"
                    this.handle_database    = "tabla" &&esta en minusculas.
                    this.handle_port        = this.port_Mysql
Espero que esta infotmacion sirva de algo para solucionar el problema.

Antonio Meza

unread,
Dec 5, 2018, 11:56:17 AM12/5/18
to Comunidad de Visual Foxpro en Español
Te comento!!

Es obligatorio tener un campo autoincrementable?, es que yo no lo he usado nunca
R= Si es obligatorio si quieres administrar el cursor desde FoxyDb con .Query(), si usas .Sql() para realizar consultas no, pero para modificar datos si es obligatorio, no te perjudica en nada y en cambio te beneficia mucho.

En cuanto a la versión de Mysql es la 5.3
Hay una propiedad de la librería para compatibilidad con versiones anteriores a la 5.6 que no soportan transacciones de solo lectura, por default esta en Falso. desde Foxydb.prg la agregas en tu código antes de conectar.

mysql_Compatibility = false && Compatibilidad con versión mysql 5.5 o menor


El servidor de MySql esta en un contenedor Docker sobre un servidor Linux.
No tengo la liga a la mano donde modifique foxydb 2.5 para que pueda trabajar con servidores linux por el problema de los nombres de las tablas en Mayúsculas y minúsculas. 
Checa este post y descarga el archivo prg a ver si con eso se soluciona tu problema con el servidor linux.



El código que uso es el mismo del ejemplo de la clase cambiando solo los datos de conexion y el nombre de la tabla.
Tienes que checar lo que comento arriba.

El resultado es verdadero en cuanto a oDb.test(), oDb.conect() es falso esto me sucede últimamente ya qye antes la conexion daba verdadera,  oDb.Use, o oDb.sql siempre me da falso.siendo lo demás verdadero.
Mejor usar .Query() y .Sql(), porque .Use() fue para tratar de imitar al Use de VFP, pero siempre debes indicar los campos a usar.

Nota: También debes usar VFP 9 sp2

saludos
Antonio Meza

Juan Ramón Hueso Pérez

unread,
Dec 5, 2018, 4:20:37 PM12/5/18
to Comunidad de Visual Foxpro en Español
Gracias MAESTRO ANTONIO MEZA, me has salvado la vida pues estaba para tomar un camino.
Como siempre digo, hay que leer mas, ya que el problema era la compatibilidad con la version de MySql 5.3.
Estoy a tu entera disposicion para lo que necesites.
Un abrazo y siempre agradecido.
Juan Ramón Hueso.

Pd. Como soy muy pesado y torpon si tengo algun problema te los consultare.

Reply all
Reply to author
Forward
0 new messages