Access - 2 bases de datos. Estoy desesperado.

   
Vista:

2 bases de datos. Estoy desesperado.

Publicado por jorge (5 intervenciones) el 01/12/2007 11:31:47
Hola,
Quiero actualizar los datos de una tabla en mi base de datos local con los datos de una consulta que hago sobre un servidor Sybase, a la cual me conecto por ODBC. El problema de todo lo que he probado es el bajo rendimiento, puesto que se eterniza. He probado:

- Pasar registro a registro secuencialmente
- Método SaveToFile y actualizar la tabla destino con una query a fichero de texto
- Vincular tablas mediante ADOX
- Emplear OPENDATASOURCE y OPENROWSET. Para ello, he de lanzar mi consulta con la cadena de conexión a Access, con lo que la actualización es muy lenta.
- Métodos Getrows, GetString y luego alimentar un recordset abierto en tabla destino

Finalmente, la manera más rápida de hacerlo, AUNQUE PAREZCA INCREIBLE, ha sido crear un libro de Excel, emplear el método CopyfromRecordset del objeto Range y volcar los datos, tratarlo como una tabla de Excel y emplear una cadena que enlaza mi hoja de Excel con la base de datos de Access.
Creo que no me he dejado nada.

Por si alguien lo pudiere sugerir, comentar que, por motivos de seguridad, en mi trabajo no me permiten tener un servidor de datos en mi PC tipo SQL Server, por ejemplo. Mi base de datos ha de ser Access.

Podría alguien ayudarme?.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:2 bases de datos. Estoy desesperado.

Publicado por Carlos Alexander (22 intervenciones) el 01/12/2007 14:41:44
pues llevo mucho tiempo creando software pero nunca he tenido problema cona nada. si quieres hacemos una cosa envieme su base de datso para ver como la tienes.

una pregunta usted, solamente trabajas access, por ejemplo no trabajas access con visual basic 6.0 .

caulquier cosa me este es mi correo
proyectoscac@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 bases de datos. Estoy desesperado.

Publicado por jorge (5 intervenciones) el 01/12/2007 16:02:23
Hola Carlos,
Sí, olvidé mencionar que trabajo con ADO en VB 6 ( pensé que era evidente, pero olvidé que el foro es de Access y no de ADO o VB). No puedo enviar la BD (no puedo publicar datos de mi empresa).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 bases de datos. Estoy desesperado.

Publicado por Chea  (1015 intervenciones) el 02/12/2007 18:59:11
¿Estás intentando hacer eso desde Access o desde VB?

Nunca he trabajado con Sybase, pero cuando he hecho algo usando ODBC, la única complicación es al principio, al realizar la vinculación, luego se trabaja con las tablas igual que si fueran de Access, salvo el rendimiento, que suele mermar.

A partir de una tabla vinculada a través de ODBC puedes usar una consulta de creación de tablas para pasar todos los datos a una tabla de Access, aunque, como este tipo de consultas no generan índices, es preferible tener una tabla con ellos, vaciarla y llenarla de nuevo con una consulta de datos anexados.

El problema de la lentitud seguramente estará en la consulta original, con la que seleccionas los datos que vas a pasar a tu tabla local. No siendo Access un verdadero servidor de datos, va a traer todos los datos de la tabla y procesarlos en local, lo que le puede llevar mucho tiempo. Es decir, que si tienes una tabla con cien millos de registros y haces una consulta en Access para que te devuelva uno, Access tomará los cien millones de registros, procesará la consulta y luego te devolverá ese único registro.

Como Access utiliza los índices para mejorar el rendimiento de las consultas, es posible que, si tu tabla local tiene índices bien creados, te resultara más eficiente importar todos los datos y luego ejecutar la consulta que forzar al motor de consultas de Access a trabajar con datos en otra ubicación.

No sé como se hará eso en Sybase, pero la cosa sería que la consulta se ejecutara en el servidos y sólo devolviera los datos precisos. Es con SQL Server se consigue utilizando procedimientos almacenados, funciones SQL o consultas de paso a través (datos de sólo lectura).

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:2 bases de datos. Estoy desesperado.

Publicado por jorge (5 intervenciones) el 03/12/2007 10:38:40
Hola
trabajo desde VB, con ADO. El problema no es de la consulta de selección en la base de datos del servidor Sybase. De hecho, la consulta es bastante rápida y mi recordset de ADO se rellena rápidamente. El problema es rellenar mi tabla de la base de datos local con la información de ese recordset. Como he dicho, he probado de todo: pasar secuencialmente registro a registro los datos de un recordset a otro, crear un fichero de texto y despues consultarlo (con los métodos Getrows, GetString o SaveFile escribo un fichero de texto que luego consulto desde Access). Incluso, he intentado simultanear dos conexiones mediante OPENDATASOURCE y OPENROWSET, aunque he de lanzar la consulta desde la conexión de Access, lo cual lo hace muy lento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar