Discussion:
ADO y FoxPro
(demasiado antiguo para responder)
Francisco Gomez
2006-10-25 20:59:02 UTC
Permalink
Estoy programando en VB desde Access 2003. Necesito conectar con un ficero
.dbf que llevá un índice CDX asociado, por lo que supongo se trata de una
tabla FoxPro. Me estoy dando por vencido en lo que respecta a intentar
vincular la tabla.

¿Alguien me echa una mano sobre cómo trabajar con ella en ADO? Necesito
conectar con la tabla y añadir registros. El índice CDX DEBE actualizarse.
Agradecería un pequeño fragmento de código (con la cadena de conexión, y
rutina básica que me permita cargar la tabla y añadir y actualizar sus
registros)

Gracias!
Lord Voldemort
2006-10-25 22:11:58 UTC
Permalink
has oido del ODBC?? dicen que esta viejo.. jejeje. .bueno puedes vincular la
tabla de fox a acces por medio del odbc, entra a control panel, en
administrative tool, data source, ahi crea una conexion a Fox... me imagino
que es una tabla libre...y crea un DSN... bueno ahi hay lo creas...

y para vincularla con acces pues lo de siempre, la ultima opcion que dice
ODBC la vinculas..
--
Que todo este bonito...

Lord Voldemort
Choluteca, Honduras
Escucha, serás sabio. El comienzo de la sabiduría es el silencio."
Post by Francisco Gomez
Estoy programando en VB desde Access 2003. Necesito conectar con un ficero
.dbf que llevá un índice CDX asociado, por lo que supongo se trata de una
tabla FoxPro. Me estoy dando por vencido en lo que respecta a intentar
vincular la tabla.
¿Alguien me echa una mano sobre cómo trabajar con ella en ADO? Necesito
conectar con la tabla y añadir registros. El índice CDX DEBE actualizarse.
Agradecería un pequeño fragmento de código (con la cadena de conexión, y
rutina básica que me permita cargar la tabla y añadir y actualizar sus
registros)
Gracias!
Francisco Gomez
2006-10-26 13:09:02 UTC
Permalink
Gracias!.. pero... ya lo he intentado...

Me bajé los últimos drivers del FoxPro, y tengo varios problemas:

- Primero, necesito que la vinculación se realice mediante código.. Esto ya
lo solucioné tras mucho pelearme usando Docmd.Transferdatabase.

- En la vinculación, tanto a través del asistente como mediante código, al
final se me abre una ventana pidiendome que ESPECIFIQUE los campos clave a
usar. Yo no quiero que me aparezca esa ventana durante la vinculación, ya
que, por una parte, lo que quiero es usar las claves que tiene el fichero
CDX, y, por otra, no deseo que se abran ventanas 'extrañas' para el usuario.

- Si no especifico los campos clave en la ventana emergente, únicamente me
permite trabajar en modo lectura.

Es por eso que al final estoy intentando una aproximación con ADO.

Nuevamente, gracias por tu orientación, pero si puedes echarme una mano con
el ADO, te lo agradezco.
Post by Lord Voldemort
has oido del ODBC?? dicen que esta viejo.. jejeje. .bueno puedes vincular la
tabla de fox a acces por medio del odbc, entra a control panel, en
administrative tool, data source, ahi crea una conexion a Fox... me imagino
que es una tabla libre...y crea un DSN... bueno ahi hay lo creas...
y para vincularla con acces pues lo de siempre, la ultima opcion que dice
ODBC la vinculas..
--
Que todo este bonito...
Lord Voldemort
Choluteca, Honduras
Escucha, serás sabio. El comienzo de la sabiduría es el silencio."
Post by Francisco Gomez
Estoy programando en VB desde Access 2003. Necesito conectar con un ficero
.dbf que llevá un índice CDX asociado, por lo que supongo se trata de una
tabla FoxPro. Me estoy dando por vencido en lo que respecta a intentar
vincular la tabla.
¿Alguien me echa una mano sobre cómo trabajar con ella en ADO? Necesito
conectar con la tabla y añadir registros. El índice CDX DEBE actualizarse.
Agradecería un pequeño fragmento de código (con la cadena de conexión, y
rutina básica que me permita cargar la tabla y añadir y actualizar sus
registros)
Gracias!
SoftJaén
2006-10-26 14:02:37 UTC
Permalink
Post by Francisco Gomez
Estoy programando en VB desde Access 2003. Necesito conectar con un ficero
.dbf que llevá un índice CDX asociado, por lo que supongo se trata de una
tabla FoxPro.
¿Alguien me echa una mano sobre cómo trabajar con ella en ADO?
Hola, Francisco:

Lo único que te puedo decir es que, si deseas trabajar con archivos de
FoxPro mediante la biblioteca de ADO, utiliza el proveedor de datos de
FoxPro. Por si lo consideras oportuno, te dejo este enlace a la Base del
Conocimiento (en inglés):

HOWTO: Use ADO with a Visual Foxpro Database
http://support.microsoft.com/default.aspx?scid=KB;EN-US;165492

El ejemplo, cuyo código está en ASP, pero es fácilmente adaptable a Visual
Basic, utiliza el driver ODBC de Visual FoxPro para abrir una base de datos
con la biblioteca de ADO.

Y si no deseas utilizar el driver ODBC, podrás descargar el proveedor OLE DB
para Visual FoxPro desde la siguiente dirección:

Microsoft OLE DB Provider for Visual FoxPro 8.0
http://www.microsoft.com/downloads/details.aspx?familyid=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&displaylang=en

Pero con éste último proveedor de datos, ignoro cómo puedes vincular un
archivo de FoxPro a la base de Access.

Por si te puede servir de ayuda, cuando he tenido que trabajar con archivo
de FoxPro (y lo suelo hacer bastante), me he apañado con el ISAM para dBASE
del motor Microsoft Jet, y hasta la fecha, no he tenido ningún tipo de
problema para añadir registros, editarlos, etc. Eso sí, los archivos CDX ni
los he tocado, porque de ellos se encarga la aplicación propia que trabaja
con dichos archivos de FoxPro. Pero te repito que son archivos de una
aplicación en concreto, y no quiere decir que trabaje igual de bien con
otros tipos de archivos de FoxPro.

No obstante, y ya que dices que estás trabajando desde el propio Microsoft
Access, yo te aconsejaría que expusieras tu mensaje en el grupo de noticias
propio de Access, por si los compañeros de allí, que están más acostumbrados
a trabajar con Access, conocen otra manera de vincular un archivo de FoxPro
a una base de datos de Access:

microsoft.public.es.access

Un saludo
--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Francisco Gomez
2006-10-27 08:46:02 UTC
Permalink
Gracias por tu ayuda.

Mi problema es que los indices (el fichero CDX) deben de actualizarse
mientras trabajo con el fichero desde Access. Ya he comprobado que el ISAM de
dbase funciona muy bien si obviamos el CDX. Pero no me sirve por lo de antes.

Ya tengo un mensaje similar en el grupo de Access, donde pedí info sobre
como VINCULAR la tabla. Pero la vincualción ( a través del ODBC de Visual
FoxPro ) me esta causando muchos problemas. Es por ello que decidí publicar
aqui un mensaje, pidiendo info sobre como trabajar con ADO desde VB (Access
2003 trabaja con VB, no con VBA), estableciendo una conexión directa, sin
tener que vincular la tabla . Espero que con lo que me has indicado el
fichero CDX SE ACTUALICE. Si no, lo llevo mal......

Te explico mi problema, por si se te ocurre otro 'workaround'. Hay una
aplicación a la que debo exportar datos. Esta aplicación solo importa
ficheros .dbf con su correspondiente .cdx (si solo le entrego el .dbf me da
error). Hasta ahora lo que había hecho era vincular el DBF con el ISAM de
dbase IV y añadir los registros que quería, sin problemas. ¿Se te ocurre
alguna salida? ¿Hay por ahí algun programa 'reidexador' que, una vez creado
en .dbf pueda actualizar o reconstruir (reindexar) a posteriori el fichero
.CDX?

Gracias!
Post by SoftJaén
Post by Francisco Gomez
Estoy programando en VB desde Access 2003. Necesito conectar con un ficero
.dbf que llevá un índice CDX asociado, por lo que supongo se trata de una
tabla FoxPro.
¿Alguien me echa una mano sobre cómo trabajar con ella en ADO?
Lo único que te puedo decir es que, si deseas trabajar con archivos de
FoxPro mediante la biblioteca de ADO, utiliza el proveedor de datos de
FoxPro. Por si lo consideras oportuno, te dejo este enlace a la Base del
HOWTO: Use ADO with a Visual Foxpro Database
http://support.microsoft.com/default.aspx?scid=KB;EN-US;165492
El ejemplo, cuyo código está en ASP, pero es fácilmente adaptable a Visual
Basic, utiliza el driver ODBC de Visual FoxPro para abrir una base de datos
con la biblioteca de ADO.
Y si no deseas utilizar el driver ODBC, podrás descargar el proveedor OLE DB
Microsoft OLE DB Provider for Visual FoxPro 8.0
http://www.microsoft.com/downloads/details.aspx?familyid=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&displaylang=en
Pero con éste último proveedor de datos, ignoro cómo puedes vincular un
archivo de FoxPro a la base de Access.
Por si te puede servir de ayuda, cuando he tenido que trabajar con archivo
de FoxPro (y lo suelo hacer bastante), me he apañado con el ISAM para dBASE
del motor Microsoft Jet, y hasta la fecha, no he tenido ningún tipo de
problema para añadir registros, editarlos, etc. Eso sí, los archivos CDX ni
los he tocado, porque de ellos se encarga la aplicación propia que trabaja
con dichos archivos de FoxPro. Pero te repito que son archivos de una
aplicación en concreto, y no quiere decir que trabaje igual de bien con
otros tipos de archivos de FoxPro.
No obstante, y ya que dices que estás trabajando desde el propio Microsoft
Access, yo te aconsejaría que expusieras tu mensaje en el grupo de noticias
propio de Access, por si los compañeros de allí, que están más acostumbrados
a trabajar con Access, conocen otra manera de vincular un archivo de FoxPro
microsoft.public.es.access
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Ariel M.
2006-10-27 12:12:37 UTC
Permalink
Post by Francisco Gomez
Gracias por tu ayuda.
Mi problema es que los indices (el fichero CDX) deben de actualizarse
mientras trabajo con el fichero desde Access. Ya he comprobado que el ISAM de
dbase funciona muy bien si obviamos el CDX. Pero no me sirve por lo de antes.
Ya tengo un mensaje similar en el grupo de Access, donde pedí info sobre
como VINCULAR la tabla. Pero la vincualción ( a través del ODBC de Visual
FoxPro ) me esta causando muchos problemas. Es por ello que decidí publicar
aqui un mensaje, pidiendo info sobre como trabajar con ADO desde VB (Access
2003 trabaja con VB, no con VBA), estableciendo una conexión directa, sin
tener que vincular la tabla . Espero que con lo que me has indicado el
fichero CDX SE ACTUALICE. Si no, lo llevo mal......
Te explico mi problema, por si se te ocurre otro 'workaround'. Hay una
aplicación a la que debo exportar datos. Esta aplicación solo importa
ficheros .dbf con su correspondiente .cdx (si solo le entrego el .dbf me da
error). Hasta ahora lo que había hecho era vincular el DBF con el ISAM de
dbase IV y añadir los registros que quería, sin problemas. ¿Se te ocurre
alguna salida? ¿Hay por ahí algun programa 'reidexador' que, una vez creado
en .dbf pueda actualizar o reconstruir (reindexar) a posteriori el fichero
..CDX?
Gracias!
Post by SoftJaén
Post by Francisco Gomez
Estoy programando en VB desde Access 2003. Necesito conectar con un ficero
.dbf que llevá un índice CDX asociado, por lo que supongo se trata de una
tabla FoxPro.
¿Alguien me echa una mano sobre cómo trabajar con ella en ADO?
Lo único que te puedo decir es que, si deseas trabajar con archivos de
FoxPro mediante la biblioteca de ADO, utiliza el proveedor de datos de
FoxPro. Por si lo consideras oportuno, te dejo este enlace a la Base del
HOWTO: Use ADO with a Visual Foxpro Database
http://support.microsoft.com/default.aspx?scid=KB;EN-US;165492
El ejemplo, cuyo código está en ASP, pero es fácilmente adaptable a Visual
Basic, utiliza el driver ODBC de Visual FoxPro para abrir una base de datos
con la biblioteca de ADO.
Y si no deseas utilizar el driver ODBC, podrás descargar el proveedor OLE DB
Microsoft OLE DB Provider for Visual FoxPro 8.0
http://www.microsoft.com/downloads/details.aspx?familyid=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&displaylang=en
Pero con éste último proveedor de datos, ignoro cómo puedes vincular un
archivo de FoxPro a la base de Access.
Por si te puede servir de ayuda, cuando he tenido que trabajar con archivo
de FoxPro (y lo suelo hacer bastante), me he apañado con el ISAM para dBASE
del motor Microsoft Jet, y hasta la fecha, no he tenido ningún tipo de
problema para añadir registros, editarlos, etc. Eso sí, los archivos CDX ni
los he tocado, porque de ellos se encarga la aplicación propia que trabaja
con dichos archivos de FoxPro. Pero te repito que son archivos de una
aplicación en concreto, y no quiere decir que trabaje igual de bien con
otros tipos de archivos de FoxPro.
No obstante, y ya que dices que estás trabajando desde el propio Microsoft
Access, yo te aconsejaría que expusieras tu mensaje en el grupo de noticias
propio de Access, por si los compañeros de allí, que están más acostumbrados
a trabajar con Access, conocen otra manera de vincular un archivo de FoxPro
microsoft.public.es.access
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Hola Francisco. Mi experiencia con archivos DBF e indices CDX, es que
con ADO y el método Execute del objeto Connection, o con el método
AddNew del objeto Recordset no pude actualizar los índices.
La única forma en que lograba que se actualizaran los índices, fue con
el método AddNew del objeto Recordset, pero de DAO, y marcando la
referencia a "Microsoft DAO 2.5/3.51 Compatibility Library". Esto es
desde VB6, no se cual será la forma para implementarlo desde Access,
pero tal vez te sirva.
--
Saludos. Ariel
Mendoza - Argentina

"Vive cada día como si fuera el último, uno de estos días lo será" :-)

Búsqueda en "San Google"
http://groups.google.es/group/microsoft.public.es.vb?hl=es
SoftJaén
2006-10-27 13:06:43 UTC
Permalink
Post by Francisco Gomez
Te explico mi problema, por si se te ocurre otro 'workaround'. Hay una
aplicación a la que debo exportar datos. Esta aplicación solo importa
ficheros .dbf con su correspondiente .cdx (si solo le entrego el .dbf me
da error). Hasta ahora lo que había hecho era vincular el DBF con el
ISAM de dbase IV y añadir los registros que quería, sin problemas. ¿Se
te ocurre alguna salida? ¿Hay por ahí algun programa 'reidexador' que,
una vez creado en .dbf pueda actualizar o reconstruir (reindexar) a
posteriori el fichero .CDX?
Como ya te indiqué, sólo manejo archivos de FoxPro para una aplicación en
concreto, y con el ISAM para dBASE, por ahora, me va bien. Por supuesto no
toco para nada los archivos CDX, porque de ello se encarga la propia
aplicación. En definitiva, más que trabajar con archivos de FoxPro, lo que
yo hago es crear un archivo dbf que posteriormente es el propio programa el
que se encarga de importarlo, con las opciones que tiene disponibles para
importar datos, por lo que me imagino que se encargará de actualizar los
índices.

Al igual que te ha comentado Ariel, haz una prueba con la versión 3.51 de la
biblioteca de DAO, y utilizando el ISAM propio para FoxPro, o bien, si
deseas trabajar directamente con los archivos de FoxPro mediante la
biblioteca de ADO, tendrás que utilizar el proveedor de datos propio de
Visual FoxPro. Pero ahí, lamento tener que decirte que no te voy a poder
ayudar, porque del lenguaje de FoxPro se lo mínimo, por no decir nada. Lo
siento.
--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Continúe leyendo en narkive:
Loading...