PDA

Ver la Versión Completa : Envio de registros desde Access a SQL Server con Delphi


JuanPa1
28-09-2007, 17:34:33
Hola amigos espero puedan ayudarme con lo siguiente:

Entoy enviando información a diario(1000 registros por dia) de una base de datos access a un servidor SQL Server Remoto desde una aplicación desarrollada en delphi 7, lo que tengo actualmente me permite enviar registro por registro pero he tenido el siguiente problema:
1.- Se demora demasiado el tiempo de envio.
2.- EL consumo del ancho de banda es muy alto.
3.- El envio en algunos casos falla debido a la congestión de la red lo que hace que el tiempo de espera se termine.

Mi pregunta es la siguiente:
Hay alguna manera más eficiente de enviar gran cantidad de información de access a sql server desde delphi?. Me han comentado que se puede enviar por bloque pero sobre eso no se mucho y tampoco encuentro información al respecto.
Alguna sugerencia estaré pendiente.

poliburro
28-09-2007, 17:55:39
Hijole, de repente no me lo cres, pero puedo decirte con 100% de certeza, que delphi es la peor opción que puedes elegir para migrar datos desde access a Sql Server.

La mejor opción es utilizar los servicios de transformación de datos (DTS) que están integrados a Sql Server.


Las Dts son la mejor herramienta de integración de datos con que cuenta Sql Server.


Suerte

JuanPa1
28-09-2007, 18:02:13
Gracias amigo por tu pronta respuesta. Pero se me ocurre que si los DTS son la mejor manera de migrar, crees tu que podria programar un DTS en delphi o en algún otro lenguaje ya que es una tarea que se debe realizar a diario??

poliburro
28-09-2007, 18:20:15
Las Dts Son por decirlo de alguna manera "Programas" que se ejecutan en Sql Server. Y que pueden ser programados como tareas.

Dale una leida a la documentación de las DTS para que te des una mejor idea acerca de ellas.

JuanPa1
28-09-2007, 18:30:25
Gracias, voy a investigar mas al respecto.

Saludos.

waly2k1
03-10-2007, 00:04:44
Poliburro, por qué crees que Delphi sea una mala opción?. No hice eso nunca desde Delphi como para afirmar o no, pero no lo creo. El tema es no usar BDE por ej. pero si usas ADO u otro metodo de acceso mas eficiente que el BDE creo sería lo mismo que VB o alguna otra herramienta.

El tema del DTS es un poco mas complejo, ya que hay que instalar el cliente de SQL en la PC que tiene Access, además en casos hasta tuve que instalar el SQL Full para que funcione el DTS.

Se podrían usar los servicios de replicación heterogenea pero tampoco es sencillo, así que creo que ADO sería una buena opción y despues ver si las tablas están bien optimizadas y ese tipo de cosas.

Ademas ver en que momento se hace el traspaso de datos, por el tema de los usuarios simultaneos, ya que con 5 o mas usuarios accediendo a la misma base ya te 'achancha' la red, imaginate acceder a un servidor remoto al mismo tiempo. La otra opcion es vincular las tablas de SQL Server en Access y ejecutar desde la PC donde está la base Access (local) el traspaso.

Saludos

poliburro
03-10-2007, 23:17:24
Poliburro, por qué crees que Delphi sea una mala opción?.

Ok, te explico la razón de primera mano,

En mi actual empleo migramos datos de Db2 a Sql Server y de Sql Server a Mysql. El volumen de registros es de miles. Hacerlo con delphi, implica un barrido sumamente costoso. Te lo digo por experiencia. En cambio con las Dts, solo he necesitado tres tareas vinculadas y listo :P. la migración se hace con bastante rapidez.

Yo soy fanático de delphi, 8 años de mi vida con el lenguaje lo confirman, pero hay que aceptar cuando flaquea con alguna tarea.


Suerte.

waly2k1
04-10-2007, 15:48:15
Ah bien, buen fundamento
entendí que era el Delphi el problemas para vos, en realidad con cualquier lenguaje entonces tendrías ese problema, ya que debe abrir las tablas/querys en memoria y despues repartirlas.

Vi procesos bancarios con BCP y DTS y sí son muy potentes, pero no faciles de generar, aunque con SQL lo podés hacer con asistente, el codigo que genera es enorme.

Saludos