Fox y MySql

08/04/2005 - 09:33 por Josep Maria | Informe spam
Hola, estamos migrando una aplicación que tenemos hecha en
Visual FoxPro para que trabaje con una base de datos MySql
en vez de la base de datos de Fox que utilizabamos hasta
ahora.

Utilizamos ODBC para acceder a los datos. Como MySql no
soporta el tipo de datos lógico, utilizamos para campos de
este tipo el tipo TINYINT de MySql que es un entero de 1
bytes al cual damos un valor de 0 ó 1 según si queremos
representar el concepto .T. ó .F.

El caso es que al ejecutar desde FOX, un SQLEXEC via ODBC
contra una tabla de MySql que tiene campos TINYINT, nos
devuelve en el cursor de FOX campos enteros (que es el
tipo que más se le parce) y no lógicos, claro está.

Alguien ha implementado en alguna ocasión algún mecanismo,
ó sabe la forma de convertir esos campos enteros que nos
vienen en el cursor de FOX en campos lógicos, con .T.
i .F. ? Lo necesitaríamos pues nuestra aplicación espera
ese tipo de campo lógico (.T. i .F.) y no los enteros,
sino deberíamos reescribir mucho código.

Existe algun driver ODBC de MySql que convierta
automáticamente los campos TINYINT de MySql en campos
lógicos .T. i .F. ?

Alguien se ha encontrado con este problema ante ? Como lo
ha solucionado ?

Gracias.
 

Leer las respuestas

#1 Esparta Palma
08/04/2005 - 09:44 | Informe spam
Las vistas remotas pueden "mapear" los tipos resultantes, mismo caso con
los cursorAdapters (VFP8 y posteriores), en los que es posible por medio
de los CursorSchemas. Con SPT no es posible de manera "nativa", tienes
que implementar algún método para convertirlos despues-de.


ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º

Espartaco Palma Martínez
SysOp http://www.PortalFox.com
México D.F.
MoBlogs!
http://weblogs.golemproject.com/esparta/ <- Tech
http://www.espartha.com/blog/ <- Personal

Josep Maria wrote:
Hola, estamos migrando una aplicación que tenemos hecha en
Visual FoxPro para que trabaje con una base de datos MySql
en vez de la base de datos de Fox que utilizabamos hasta
ahora.

Utilizamos ODBC para acceder a los datos. Como MySql no
soporta el tipo de datos lógico, utilizamos para campos de
este tipo el tipo TINYINT de MySql que es un entero de 1
bytes al cual damos un valor de 0 ó 1 según si queremos
representar el concepto .T. ó .F.

El caso es que al ejecutar desde FOX, un SQLEXEC via ODBC
contra una tabla de MySql que tiene campos TINYINT, nos
devuelve en el cursor de FOX campos enteros (que es el
tipo que más se le parce) y no lógicos, claro está.

Alguien ha implementado en alguna ocasión algún mecanismo,
ó sabe la forma de convertir esos campos enteros que nos
vienen en el cursor de FOX en campos lógicos, con .T.
i .F. ? Lo necesitaríamos pues nuestra aplicación espera
ese tipo de campo lógico (.T. i .F.) y no los enteros,
sino deberíamos reescribir mucho código.

Existe algun driver ODBC de MySql que convierta
automáticamente los campos TINYINT de MySql en campos
lógicos .T. i .F. ?

Alguien se ha encontrado con este problema ante ? Como lo
ha solucionado ?

Gracias.

Preguntas similares