Jump to content

Migrar parte de Aplicacion Access a Sql server


Recommended Posts

Hola amigos ,tengo una gran duda que espero me puedan ayudar a aclarar, el tema es el siguiente

en el trabajo existen aplicaciones que son muy grandes en tamaño hay de 600 MB 400 etc la mas grande pesa 1.92 GB y ya esta casi colapsada ,como saben acces no soporta mas de 2 GB

estas aplicaciones tienen : tablas locales,tablas vinculadas por ODBC a AS400,tablas vinculadas a Excel,

Formularios,Informes y macros y consultas de todo tipo , como veran hay mucha diversidad en cuanto a informacion en esta aplicacion.

como les dije ,una de estas aplicaciones esta que revienta con 1.95 GB y es necesario guardar la info en otra parte no puedo migrar todo a SQL por problemas de tiempo y desconocimiento aunque en un futuro sera necesario, estas son mis dudas espero me pudan ayudar:

 

-puedo migrar parte de access a SQL , me explico: tratar de dejar todas las tablas locales de gran peso ,en SQL para alivianar el peso y vincularme desde los formularios de acces a SQL y seguir usando la aplicación como si nada pasara ,osea en ves de ir a buscar las grandes tablas en acces iria a SQL que tambien serviría para guardar toda la informacion, y todas las consultas,informes ,macros etc seguirian estando en Acces ,

se puede?

 

-si tuviera que migrar todo a SQL ,que haría con los formularios,macros,informes.reportes ,consultas?

aunque la idea no es migrar todo todavía ,

 

 

-existe alguna forma de optimizar el tamaño de acces ,(compactar y reparar ya lo probe)

 

 

eso de antemano muchas gracias y espero me puedan ayudar

 

saludos....

Link to comment
Share on other sites

Hola, no tengo mucha experiencia en sqlserver, pero revisa si esta aplicación te sirve para migrar los datos: http://www.microsoft.com/sqlserver/en/us/product-info/migration-tool.aspx#Access

Esa es para sqlserver 2008r2, supongo que debe haber para otras versiones.

En cuanto a lo de las macros, a ver si alguién que sepa te ayuda.

 

Saludos y suerte

Link to comment
Share on other sites

Vamos por parte dijo Jack :tonto:

 

- Access es una herramienta que concentra varias cosas: motor de base de datos, formularios, informes, etc.

- SQL Server es sólo un motor de base de datos

- La migración de Access a SQL Server se puede hacer con la herramienta que propone xomarx69

- En SQL Server no puedes tener directamente formularios, macros ni informes

- SQL Server tiene una herramienta (relativamente independiente del motor) para presentar informes, se llama SSRS (SQL Server Reporting Services)

- Dicho de una manera simple: Access = SQL Server + SSRS + Visual Studio (Formularios... en realidad aplicación)

 

Dado el problema que presentas, mi recomendación es la siguiente:

 

- No uses la herramienta de migración... Muchas veces estas herramientas dejan la cagá

- Crea las tablas directamente en SQL Server

- Luego, importa los datos desde Access a SQL Server (en SQL Server Management Studio hay una opción para importar datos solamente)

- Borra las tablas en Access que dejaste en SQL Server

- Crea las mismas tablas, pero nuevas, como tablas vinculadas (igual como lo estás haciendo con Excel), pero esta vez apuntando a SQL Server

 

Con eso, todo lo que tienes queda tal cual "como si nada", pero con las tablas grandes en SQL Server

 

Recomendación 2: Dile a la empresa que se ponga con lukas y crean una sola aplicación (en Java, Visual Studio, PHP, ASP.Net, Flex o lo que quieran) usando SQL Server... Ese menjunje que tienes pronto colapsará y además debes tener serios problemas de performance e integridad...

 

SAlu2.

Link to comment
Share on other sites

Vamos por parte dijo Jack :tonto:

 

- Access es una herramienta que concentra varias cosas: motor de base de datos, formularios, informes, etc.

- SQL Server es sólo un motor de base de datos

- La migración de Access a SQL Server se puede hacer con la herramienta que propone xomarx69

- En SQL Server no puedes tener directamente formularios, macros ni informes

- SQL Server tiene una herramienta (relativamente independiente del motor) para presentar informes, se llama SSRS (SQL Server Reporting Services)

- Dicho de una manera simple: Access = SQL Server + SSRS + Visual Studio (Formularios... en realidad aplicación)

 

Dado el problema que presentas, mi recomendación es la siguiente:

 

- No uses la herramienta de migración... Muchas veces estas herramientas dejan la cagá

- Crea las tablas directamente en SQL Server

- Luego, importa los datos desde Access a SQL Server (en SQL Server Management Studio hay una opción para importar datos solamente)

- Borra las tablas en Access que dejaste en SQL Server

- Crea las mismas tablas, pero nuevas, como tablas vinculadas (igual como lo estás haciendo con Excel), pero esta vez apuntando a SQL Server

 

Con eso, todo lo que tienes queda tal cual "como si nada", pero con las tablas grandes en SQL Server

 

Recomendación 2: Dile a la empresa que se ponga con lukas y crean una sola aplicación (en Java, Visual Studio, PHP, ASP.Net, Flex o lo que quieran) usando SQL Server... Ese menjunje que tienes pronto colapsará y además debes tener serios problemas de performance e integridad...

 

SAlu2.

 

Master, he estado en la mañana haciendo algunas pruebas ,siguiendo tus ideas junto con la del amigo xomarx69 (SSMA for Access 5.2)

la probe ,pero igual me da como miedo ,asi que hise el proceso mas manual .

 

primero: migre las tablas a sql pero solo como estructura ,(porque eran demasiadas tablas para crearlas a mano )

luego las vincule a acces y todo bien , pero no encontre la forma ni en sql , ni en acces de migrar los registros sin que migarara con las tablas ,de forma masiva a sql.

 

segundo una vez que tenga mas completado el tema me conectare por las odbc a AS400 desde SQL o me sigo conectando a AS400 por acces no mas y dejo solo SQL como repositorio?

 

tercero: con respecto a las consultas de acces que en sql se llaman vistas ,le estuve hechando una mirada y se parecen bastante en modo diseño ,ahora no se si sera mas complejo las vistas en SQL ,

ademas que probe pegando el codigo SQL de una consulta de acces en el barra de codigo del SQL SERVER y da muchos errores(PUEDE HABER SIDO POR EL TIPO DE DATOS ,QUE SEAN DISTINTOS EN SQL ) , señalar que el codigo SQL de acces es sumamente grande por la complejidad de consultas de acces y tener que hacer todo eso mano en el SQL SERVER es complicado

 

cuarto: baje la version express de sql con el magnament y no viene SSRS para hacer reportes , y no pude ecnontralo para instalarselo , encontre un toolkit para sql 2005 que supuestamente viene SSRS entre otras cosas ,pero tiro errores en la isntalacion ,asi que desintale todo ,voy a instalar un sql que venga SSRS ,a ver si me das el link por favor.

 

por ultimo esta dentro del presupuesto en la empresa dejar todo acces y migar a SQL y .NET pero no se cuando y ese no se cuando ,tu sabes ! la verdad no se cuando lo haran ,por lo pronto debo mejorar la perfomance de ACCES y con SQL puede que ayude bastante ,

 

cuanto mejora la performance de respuetas en consultas ,teniendo las bases de datos en SQL y todo lo que es interfaz desde access ,o seria solo para tener mas espacio?

eso.. gracias compadre por su tiempo .de verdad muy valorable ,lo mismo para el amigo xomarx69

saludos....espero alguna recomendacion...

Edited by kratos99
Link to comment
Share on other sites

Primero: Si ya tienes la estructura en SQL Server, sólo te queda importar los datos.. http://msdn.microsoft.com/en-us/library/ms140052.aspx

 

Segundo: Mi recomendación es que vincules AS400 (DB2) al SQL Server... Para ello tienes que instalar http://www.microsoft.com/es-es/download/details.aspx?id=29100 si tienes SQL Server 2012 o buscar el equivalente para la versión que tengas 2005, 2008, 2008 r2... http://www.microsoft.com/en-us/download/details.aspx?id=8824

 

Tercero: Como bien dices, las Consultas en Access es equivalente a las Vistas en SQL Server. Ojo que si tienes consultas con parámetros, estas se deben convertir a Procedimientos Almacenados en SQL Server. El lenguaje utilizado por Access es muy similar al usado por SQL Server... de hecho, se basan en la misma norma SQL95... Así que a manopla no más... tienes que ir corrigiendo los errores de sintaxis que te arroja el SQL Server... Acá podemos ir ayudándote...

 

Cuarto: Te recomiendo que instales desde ya el SQL Server 2012 versión Standard que viene con SSRS... Puedes descargar un trial por 120 días desde el mismo sitio de M$... Allá tú si las haces de capitán garfio o compras la licencia que para una empresa no es tan cara... deberían ser como 400 lukas.

 

Sobre lo último, el performance mejorará bastante, pero como siempre, estará sujeto a las capacidades del servidor donde instales el SQL Server... la calidad de la red y asdf... Pero de todas formas, te aseguro que mejorará...

 

Por otro lado, comenzar a usar SQL Server, te alivianará bastante la migración final del sistema... Es más, en la medida de lo posible y como vaya pasando el tiempo, puedes ir migrando de a poco las tablas y funciones de Access a SQL Server...

 

.Net es la interfaz... y eso puedes construirlo en la medida que vayas sacando funcionalidades del Access...

 

Recuerda que debes apuntar a quedar sólo con SQL Server y AS400 (DB2) con una interfaz .Net o cualquier lenguaje que te acomode (PHP, Flex, Java, .Net, Python, etc...) te recomiendo que pienses altiro en un ambiente web...

 

Suerte.

Link to comment
Share on other sites

Como recomendación, si vas a trabajar con SQLServer, desarrolla tu frontend con herramientas .Net ya que estas están hechas para trabajar juntas. Si luego necesitas realizar integraciones, por ejemplo con el AS400, usas algún bus de integración que te permita mantener el desarrollo grueso dentro de la misma plataforma, supongo que MS debe tener alguna herramienta para esto.

Recalco, si vas a trabajar con aplicaciones web con una base SQLServer, ve por .Net, no te hagas la vida difícil tratando de unir tecnologías nativamente incompatibles.

Link to comment
Share on other sites

Sorry colega xomarx69 pero discrepo de tu opinión... Hoy día, existe alta compatibilidad e integración de tecnologías que provienen de orígenes distintos... Hoy desarrollar una aplicación en PHP, Java, Flex o asdf que conecte con Oracle, SQL Server, PostgreSQL, MySQL o asdf es muy sencillo, porque es solo 1 o 2 capas las que varían... Es más, hoy día tu puedes desarrollar una aplicación que se conecte a distintos orígenes de datos o al mismo origen de datos, pero con distinto proveedor... Por ejemplo, lo que Yo hago es independizar el DataSource y el Driver... En PHP por ejemplo, tengo una clase con el DataSource que contiene todas las llamadas comunes a un motor de base de datos, por ejemplo: query(...) o execute_procedure(....)... Esta clase DataSource se conecta con otra clase Driver que contiene las instrucciones nativas del motor... por ejemplo, si uso un Driver para SQL Server, la conexión será: mssql_connect(...) o si es MySQL, sera mysqli_connect(...)... Y esto aplica para todos los proveedores y todos los lenguajes...

 

No desmiento que construir una aplicación con herramientas nativamente compatibles tiene algunas ventajas, como disponer de ciertos componentes... pero estas ventajas no siempre superan a las ventajas de una herramienta sobre otra... Por ejemplo, desarrollar una aplicación en Silverlight (MS), JavaFX (Oracle) o Flex (Adobe) que son tecnologías análogas (RIA), tienen pros y contras muy considerables... estas diferencias son muy superiores a las ventajas de usar un motor del mismo proveedor...

 

Sono+

Link to comment
Share on other sites

Si, es un tema de personal, pero la verdad es que desarrollar aplicaciones cerradas tecnológicamente es más simple y gastas mucho menos tiempo en el desarrollo, por ejemplo, C# y linq te ahorra cantidad de tiempo en el desarrollo usando SQLServer(aunque puedes comprar el plugin para otras bases de datos).

En cuanto a lenguajes más abiertos como Java o Php, no hay mayor diferencia en los tiempos de desarrollo ya que no existen herramientas que ayuden a reducir los tiempos de desarrollo sobre bases de datos específicas.

En lo personal prefiero no combinar tecnologías ya que para estos temas existen herramientas de integración que se encargan del procesamiento de mensajes, colas y manejo de transacciones, cosas que tendrías que desarrollar manualmente en otro caso.

Link to comment
Share on other sites

Primero: Si ya tienes la estructura en SQL Server, sólo te queda importar los datos.. http://msdn.microsof...y/ms140052.aspx

 

Segundo: Mi recomendación es que vincules AS400 (DB2) al SQL Server... Para ello tienes que instalar http://www.microsoft...s.aspx?id=29100 si tienes SQL Server 2012 o buscar el equivalente para la versión que tengas 2005, 2008, 2008 r2... http://www.microsoft...ls.aspx?id=8824

 

Tercero: Como bien dices, las Consultas en Access es equivalente a las Vistas en SQL Server. Ojo que si tienes consultas con parámetros, estas se deben convertir a Procedimientos Almacenados en SQL Server. El lenguaje utilizado por Access es muy similar al usado por SQL Server... de hecho, se basan en la misma norma SQL95... Así que a manopla no más... tienes que ir corrigiendo los errores de sintaxis que te arroja el SQL Server... Acá podemos ir ayudándote...

 

Cuarto: Te recomiendo que instales desde ya el SQL Server 2012 versión Standard que viene con SSRS... Puedes descargar un trial por 120 días desde el mismo sitio de M$... Allá tú si las haces de capitán garfio o compras la licencia que para una empresa no es tan cara... deberían ser como 400 lukas.

 

Sobre lo último, el performance mejorará bastante, pero como siempre, estará sujeto a las capacidades del servidor donde instales el SQL Server... la calidad de la red y asdf... Pero de todas formas, te aseguro que mejorará...

 

Por otro lado, comenzar a usar SQL Server, te alivianará bastante la migración final del sistema... Es más, en la medida de lo posible y como vaya pasando el tiempo, puedes ir migrando de a poco las tablas y funciones de Access a SQL Server...

 

.Net es la interfaz... y eso puedes construirlo en la medida que vayas sacando funcionalidades del Access...

 

Recuerda que debes apuntar a quedar sólo con SQL Server y AS400 (DB2) con una interfaz .Net o cualquier lenguaje que te acomode (PHP, Flex, Java, .Net, Python, etc...) te recomiendo que pienses altiro en un ambiente web...

 

Suerte.

 

Gracias viejo ,por la info te pasaste ,hoy estuve probando algunas cosillas ,ayer probe sql express 2005 ,hoy probe sql express 2008 (una duda en sql 2008 no pude ver los registros con la interfaz ,la opcion abrir tabla ,que si la tiene sql 2005, solo podia ver el diseño ).

bueno ,importe la tablas con el wizard de acces pero solo la estructura ,y los registros con la opcion que trae sql importar exportar datos,hasta hay todo piola , solo que las consultas ,vistas en sql no las paso ,algunas si y otras con errores ,lo otro como la versiones express no traen services reporting ,no pude probar reporteria ,asi que baje el report builder ,que esta piola por ahora ,recordar que estoy probando con SQL y sus herramientas para al final elegir y hacer la migracion final ,tiene que ser el mas completo como dices tu el 2012 ,trae services report y varias cosillas mas podria ser ese,pero no por ahora tengo un par de semanas para probar,

lo que necesitan aca es solo reporteria ,y grandes cantidades de consultas y bien largas, y formularios asi que

en un futuro migrare igual a .NET

lo mas complicad que veo serian los procedimientos almacenados que no se mucho de ese tema,pero tendre que investigar no mas

lo ultimo ,la version express 2008 trae db2 o tengo que bajarlo de los links que me dejaste ,o solo lo traen las versiones full de sql ,no se muy bien el tema de vincular as400 con sql ,eso muchas gracias estimado por la ayuda ,nos vemos y gracias de nuevo..

 

se me olvidaba econtre este post que se ve piola y me salvaria de momento

 

http://letrasandnumeros.com/2011/09/29/conectar-infopath-sharepoint-sql-step-by-step/

 

saludos..

 

 

 

 

Como recomendación, si vas a trabajar con SQLServer, desarrolla tu frontend con herramientas .Net ya que estas están hechas para trabajar juntas. Si luego necesitas realizar integraciones, por ejemplo con el AS400, usas algún bus de integración que te permita mantener el desarrollo grueso dentro de la misma plataforma, supongo que MS debe tener alguna herramienta para esto.

Recalco, si vas a trabajar con aplicaciones web con una base SQLServer, ve por .Net, no te hagas la vida difícil tratando de unir tecnologías nativamente incompatibles.

 

claro amigo de hecho cuando migre todo el sistema ,lo hare .NET y SQL ,

saludos y gracias por postear....

Link to comment
Share on other sites

Las versiones express son limitadas y están orientadas para ser instaladas en un solo computador... vendría a reemplazar Access...

 

Lo que necesitas es una versión full de SQL Server... con M$ SQL Server 2012 Standard te basta y sobra... Como te decía, baja la versión trial por 120 días... lo instalas en un equipo más o menos cototo y problema arreglado...

 

Suerte!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...