Migrar de Access a Sql server constantemente

14/01/2008 - 22:42 por Martín | Informe spam
Hola,

tengo el siguiente problema:

Tengo una base de datos en access en una pc XP, la cuál tiene que ser access
si o sí, por la aplicación que uso.

Pero los usuarios de la red desean ver reportes realizados y preciso tener
esos datos en sql server (2000 por ej), para que todos puedan ver al mismo
tiempo los reportes

esto tiene que pasar si o si,

entonces mi pregunta es;
¿Cómo harían para tener la bd en access y a su vez actualizada en sql
server, un estilo de "migración instantanea"?

cabe destacar que cuando un usuario quiere ver un reporte, la migración no
tiene porque ser en tiempo real, sino que podría ser cada 5 min o 10...por
ej


Agradezco cualquier ayuda,

Martín

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
14/01/2008 - 23:43 | Informe spam
"Martín" escribió en el mensaje
news:
Hola,

tengo el siguiente problema:

Tengo una base de datos en access en una pc XP, la cuál tiene que ser
access si o sí, por la aplicación que uso.

Pero los usuarios de la red desean ver reportes realizados y preciso tener
esos datos en sql server (2000 por ej), para que todos puedan ver al mismo
tiempo los reportes

esto tiene que pasar si o si,

entonces mi pregunta es;
¿Cómo harían para tener la bd en access y a su vez actualizada en sql
server, un estilo de "migración instantanea"?

cabe destacar que cuando un usuario quiere ver un reporte, la migración no
tiene porque ser en tiempo real, sino que podría ser cada 5 min o 10...por
ej


Agradezco cualquier ayuda,



Hola, Martin:

Dependiendo de cómo esté escrita la aplicación, podrías mover los datos
directamente a SQL Server y luego vincular la tabla desde Access,
reemplazando la tabla original y manteniendo compatibilidad con la
aplicación (al usar el mismo nombre para la tabla vinculada que para la
tabla original). El problema es que en una tabla vinculada no puedes usar
comandos del tipo dbOpenTable (DAO) o adCmdTable (ADO), de manera que si tu
aplicación es la típica app de VB6 seguramente tendrás problemas.

Otra posibilidad es agregar la BBDD como un servidor vinculado (revisa la
ayuda para sp_addlinkedserver y sp_add_linkedsrvlogin). Igual puedes acceder
a la tabla de Access desde SQL Server.

Por último, puedes vincular la tabla de destino en SQL Server a tu BD de
Access, y ejecutar una consulta del tipo de INSERT INTO nombreTablaVinculada
<Campos> SELECT <Campos> FROM nombreTablaLocal WHERE <no se produzcan
duplicaciones>. En este caso te queda el problema de activar periodicamente
esta consulta. Igual una aplicacion en VB, o un script activado desde el
programador de tareas podría ocuparse de este asunto.

La otra es vincular la BD Access desde SQL Server, crear un SP que se ocupe
de importar los datos, y crear un trabajo que ejecute periodicamente el SP.
Esta parece la opción más simple.


Salud!
Respuesta Responder a este mensaje
#2 Martín
15/01/2008 - 03:25 | Informe spam
te agradezco un montón el abanico de posibilidades que has propuesto,
estuve todo el día ocupado de este tema, y lo mejor que encontré en la web
fue lo siguiente:


Tener la db en access, y programar un dts en sql server que me importe los
datos de access, y hacer un job para que se ejecute cada 1 minuto por
ejemplo,
menciono esta sol. porque me pareció interesante, primero por si alguien
tiene el mismo problema y vi mi post, y además por si creés que es una
solución válida, o si es la mejor solución

el tema sería también como ver los informes, pero bueno, tendré que hacer un
nuevo post

gracias

Martín



"Leonardo Azpurua" <l e o n a r d o [arroba] m v p s [punto] o r g> escribió
en el mensaje news:%

"Martín" escribió en el mensaje
news:
Hola,

tengo el siguiente problema:

Tengo una base de datos en access en una pc XP, la cuál tiene que ser
access si o sí, por la aplicación que uso.

Pero los usuarios de la red desean ver reportes realizados y preciso
tener esos datos en sql server (2000 por ej), para que todos puedan ver
al mismo tiempo los reportes

esto tiene que pasar si o si,

entonces mi pregunta es;
¿Cómo harían para tener la bd en access y a su vez actualizada en sql
server, un estilo de "migración instantanea"?

cabe destacar que cuando un usuario quiere ver un reporte, la migración
no tiene porque ser en tiempo real, sino que podría ser cada 5 min o
10...por ej


Agradezco cualquier ayuda,



Hola, Martin:

Dependiendo de cómo esté escrita la aplicación, podrías mover los datos
directamente a SQL Server y luego vincular la tabla desde Access,
reemplazando la tabla original y manteniendo compatibilidad con la
aplicación (al usar el mismo nombre para la tabla vinculada que para la
tabla original). El problema es que en una tabla vinculada no puedes usar
comandos del tipo dbOpenTable (DAO) o adCmdTable (ADO), de manera que si
tu aplicación es la típica app de VB6 seguramente tendrás problemas.

Otra posibilidad es agregar la BBDD como un servidor vinculado (revisa la
ayuda para sp_addlinkedserver y sp_add_linkedsrvlogin). Igual puedes
acceder a la tabla de Access desde SQL Server.

Por último, puedes vincular la tabla de destino en SQL Server a tu BD de
Access, y ejecutar una consulta del tipo de INSERT INTO
nombreTablaVinculada <Campos> SELECT <Campos> FROM nombreTablaLocal WHERE
<no se produzcan duplicaciones>. En este caso te queda el problema de
activar periodicamente esta consulta. Igual una aplicacion en VB, o un
script activado desde el programador de tareas podría ocuparse de este
asunto.

La otra es vincular la BD Access desde SQL Server, crear un SP que se
ocupe de importar los datos, y crear un trabajo que ejecute periodicamente
el SP. Esta parece la opción más simple.


Salud!


Respuesta Responder a este mensaje
#3 Martín
15/01/2008 - 03:33 | Informe spam
Se me ocurrió el siguiente problema que voy a tener:


a mi me interesan los datos de las tablas de access, que creo a mano en sql
server, y los importo con un dts que se copian en tiempo real con un job

el problema es que con el job se insertara a cada rato, todos los datos de
access, y no los nuevos, que es lo que quiero

sino sería muy lento todo...Cómo puedo solucionar eso con dts???

gracias

Martín
Respuesta Responder a este mensaje
#4 qwalgrande
15/01/2008 - 08:27 | Informe spam
Hola.

Debes tener alguna forma de saber qué datos tienes que importar y qué datos
no (fechas de alta y modificación de los registros), es decir, campos en tus
tablas que guarden esa información, y eso lo tienes que tener hecho en la
parte de access. No es sencillo de realizar si la aplicación es medianamente
grande.

Alberto López Grande
qwalgrande


"Martín" wrote:

Se me ocurrió el siguiente problema que voy a tener:


a mi me interesan los datos de las tablas de access, que creo a mano en sql
server, y los importo con un dts que se copian en tiempo real con un job

el problema es que con el job se insertara a cada rato, todos los datos de
access, y no los nuevos, que es lo que quiero

sino sería muy lento todo...Cómo puedo solucionar eso con dts???

gracias

Martín



Respuesta Responder a este mensaje
#5 Maxi
15/01/2008 - 16:12 | Informe spam
Hola Martin, una alternativa seria implementar un modelo ETL con DTS y
migrar los datos de una base a la otra para que luego puedan ser
consultadas. Yo te recomiendo ir por este lado, o sea: te armas una serie de
paquetes DTS o de integration service (si usas sql 2005) y pasas los datos
de una base a la otra, luego programas dichos paquetes para que corran cada
un x Tiempo.


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Martín" escribió en el mensaje
news:
Hola,

tengo el siguiente problema:

Tengo una base de datos en access en una pc XP, la cuál tiene que ser
access si o sí, por la aplicación que uso.

Pero los usuarios de la red desean ver reportes realizados y preciso tener
esos datos en sql server (2000 por ej), para que todos puedan ver al mismo
tiempo los reportes

esto tiene que pasar si o si,

entonces mi pregunta es;
¿Cómo harían para tener la bd en access y a su vez actualizada en sql
server, un estilo de "migración instantanea"?

cabe destacar que cuando un usuario quiere ver un reporte, la migración no
tiene porque ser en tiempo real, sino que podría ser cada 5 min o 10...por
ej


Agradezco cualquier ayuda,

Martín



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida