Drivers dBase: Apertura de COMPCAB.DBF y COMPDET.DBF


Recommended Posts

Estimados. Cómo están?

Estoy intentando seleccionar registros de las tablas del sistema a través de .NET. Estoy usando controlador Microsoft.Jet.OLEDB.4.0 Dbase 5.0. 

Puedo seleccionar tranquilamente los registros de las tablas de Stock, Ventas pero no puedo acceder a las tablas de cabecera y detalle del comprobante emitido (COMPCAB y COMPDET). Muestra el siguiente error:

 "La tabla externa no tiene el formato esperado"

¿Sabrán que podrá ser? He probando con DBase III, IV y V.

GRacias!!!

  • Like 1
Enlace a comentario

Tienes la opción de abrir esos archivos en formato dBase III DBF/CDX?

Te explico la diferencia:

  1. La mayoria de los DBFs de StockBase POS usan el driver dBase III DBF/NTX
  2. Algunos casos puntuales usan el driver dBase III DBF/CDX

La diferencia entre NTX y CDX hace referencia a los archivos de indices, que son archivos temporales que se reconstruyen cada vez que se realiza una re-organización de archivos.

Por favor realiza es prueba y comentanos como te fue!  :contento:

  • Like 2
Enlace a comentario

Muchas Gracias Emi por la respuesta. Te comento que probé con un driver de FoxPro (Provider = vfpoledb) y pude acceder a la tabla COMPDET. El tema es que necesito hacer in join entre la COMPDET y la STOCK y con el mismo controlador no pude hacerlo.

 

El tema está ahí, en el controlador usado para acceder.

 

Muchas Gracias Nuevamente!!

  • Like 1
Enlace a comentario

Para poder darte un mucho, pero mucho mejor asesoramiento, me gustaría que me comentes que tipo de solución estas queriendo construir, o que tipo de problema necesitas resolver.

De esa manera, podremos aconsejarte con soluciones que ya hemos aplicado en otros clientes!  :contento: 

 

En 12/5/2015 a las 22:15, Paquimm dijo:

Muchas Gracias Emi por la respuesta. Te comento que probé con un driver de FoxPro (Provider = vfpoledb) y pude acceder a la tabla COMPDET. El tema es que necesito hacer in join entre la COMPDET y la STOCK y con el mismo controlador no pude hacerlo.

 
Estas usando exactamente esto?:
https://msdn.microsoft.com/en-us/library/0xzsac67(VS.80).aspx
 
Y que ocurre al abrir STOCK.DBF con vfpoledb?

  • Like 2
Enlace a comentario

Gracias Emi!!.

El tema es así: Preciso hacer un reporte de ventas pero filtrando por un campo Genio. Es por eso que necesito hacer un join entre la tabla STOCKy la tabla COMPDET. De esa manera, filtro por campo genio  (Campo CUSTOM_1)  y por la fecha de venta. Lo estoy haciendo .NET (C#). 

Cuando llego a casa te mando el código que estoy usando junto con el error que me tira.

Thanks Thank You GIF by Lumi

Gracias Totales!!!

  • Like 1
Enlace a comentario

Bueno. Te comento:

 

1- Usando el siguiente driver puedo acceder a la tabla COMPDET correctamente:

 

     "Provider = vfpoledb.1;Data Source=C:\\StockBase_POS_2014.766\\;Collating Sequence=general"

 

    Pero cuando quiero acceder a la tabla STOCK, me muestra el siguiente mensaje: "Error: stock.dbf no es una tabla".

 

2- Usando este otro driver, puedo acceder a la tabla stock;

 

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\StockBase_POS_2014.766\\;Extended Properties= dBase 5.0";

 

     Pero al acceder a la tabla COMPDET, muestra el siguiente error:"Error: la tabla externa no tiene el formato esperado"

 

Como te comenté en el otro mensaje, preciso hacer unos reportes, entre ellos, uno que filtre la venta de productos con un determinado valor en el campo custom (Genio). Es por eso que necesito acceder a ambas tablas simultáneamente.

 

Muchas Gracias Emi. Saludos.!

  • Like 1
Enlace a comentario

Lo que muchos programadores hacen, es esto:

 

post-2447-0-53629200-1431630226.jpg

 

Explicado en palabras:

  1. En tu aplicación, crea una base de datos (en Access, SQL o lo que sea)
  2. Esta base de datos, debe tener el formato del JOIN de STOCK.DBF y COMPDET.DBF
  3. Para poblar tu base de datos, primero puedes realizar una conexión para STOCK.DBF con un driver, y luego otra conexión a COMPDET.DBF con el otro driver

 

El resultado de esto va a ser el mismo que estas buscando, pero con estas ventajas:

  1. La información la vas a tener local en la carpeta de tu aplicación
  2. No vas a enlentecer el funcionamiento de StockBase POS al hacer sucesivas consultas cada vez que se ejecute el reporte

 

Que te parece?

  • Like 1
Enlace a comentario
Invitado
Este tema está cerrado a más respuestas.