Hola David.
He estado buscando cadenas de conexión para FoxPro pero no me funcionan.
No obstante, me vino una idea referente a los campos mayores de 256. Las consultas con el driver DBase IV no trabajan bien, la información que muestra en los campos que están después del campo con tamaño superior a 256 no es correcta.
Por ejemplo, en una tabla con estos campos:
NOMBRE TAMAÑO
CODIGO 10
NOMBRE 100
COMENTARIO 1024
PAIS 50
si hacemos un
SELECT *
FROM TABLA
La respuesta no es correcta, ya que la información del campo PAIS la devuelve truncada
aunque hagamos
SELECT CODIGO,NOMBRE,PAIS
FROM TABLA
La respuesta continúa siendo incorrecta en el campo PAIS
He pensado que el driver lee secuencialmente los registros y cuando llega al que tiene un tamaño superior a 256, solo lee estos 256 caracteres y luego continua desde el siguiente bit como si fuese el campo siguiente, pero aún continúa siendo el carácter 257 del campo COMENTARIO por lo que la información a partir de ahí sale truncada.
He puesto el campo COMENTARIO al final de la tabla:
NOMBRE TAMAÑO
CODIGO 10
NOMBRE 100
PAIS 50
COMENTARIO 1024
y a partir de ahí todo funciona correctamente, al llegar al final de línea, se debe resetear y en el siguiente registro empieza correctamente.
Con esto ya me vale, porque los campos de 1024 que tienen las tablas suelen ser descripciones, comentarios, etc... que no tienen mucha funcionalidad o ninguna cuando realizas consultas
De momento, con este ajuste ya lo tengo solventado. Lo posteo aquí por si alguien llega con el mismo problema.
No obstante, continuaré buscando si encuentro la forma de conectar mediante el Driver de DBase V ya que sí acepta hasta 2048 como tamaño de un campo en el DBF. Sé que es una burrada, mala praxis, mal diseño de la estructura de las tablas, etc... pero las herencias que a veces tenemos nos hacen mantener este tipo de fallas.
Salud!