Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Crear y llamar DTS en SQL Server 2005 (https://www.clubdelphi.com/foros/showthread.php?t=64130)

agustibaldo 18-03-2009 18:15:26

Crear y llamar DTS en SQL Server 2005
 
Estimados amigos de Club Delphi, una vez mas recurro a uds para consultarles una cuestión que no logro resolver.

Estoy desarrollando una aplicación con SQL Server 2005 Express y necesito crear un DTS que permita migrar mensualmente una tabla en DBF a una tabla SQL que tengo creada en mi Base de Datos.

Dado que tengo que correrlo mensualmente y este debe ser realizado por un usuario final, requiero crear un DTS que migre estos datos previa selección del archivo DBF en cuestión.

Primer cuestión: no se como definir (programar) el DTS y que este se encuentre accesible cuando quiero ejecutarlo desde Delphi. Utiliza el SQL Manager para administrar mi BD.

Segunda cuestión: de que forma llamo a mi DTS desde Delphi. Y a que debo llamar, si a un archivo, un Stored Procedure, etc.

Desde ya, agradezco su tiempo y buena predisposición.

Sepan disculpar si este tema ya fue tratado con anterioridad pero no he podido encontrarlo en los hilos.

Saludos.

Neftali [Germán.Estévez] 19-03-2009 10:21:59

El tema de crearlo, la verdad es que nunca lo he probado, pero para ejecutarlo, puedes echarle un vistazo a este truco que hay en mi Web.
Es antiguo y funciona sobre DTS creados en SQLServer 2000, pero supongo que el sistema debe funcionar también para 2005.,

Ya dirás.

agustibaldo 19-03-2009 12:26:50

Neftali gracias por tu respuesta.

De hecho estuve recorriendo tu página y me baje uno de los ejemplos que das allí. Pero me servirá en el siguiente paso: ejecutarlo desde Delphi ;)

Para serte sincero, he recorrido un montón de sitios y no he podido encontrar la forma de crear el DTS desde cero. En este momento estoy probando realizar una inserción a partir de un OPENROWSET. Después te comento como fue.

Nuevamente gracias por tu ayuda.

Ahhh y por cierto: Felicitaciones por tu nueva web!!!!! Va a sernos de gran utilidad. :D ;)

Un abrazo

Neftali [Germán.Estévez] 19-03-2009 14:30:14

La clase que se usa en el ejemplo para ejecutar un DTS (la clase TPackage) posee métodos de lectura y grabación.

Código Delphi [-]
procedure SaveToStorageFile
procedure SaveToRepository
procedure SaveToRepository
procedure RemoveFromRepository
procedure LoadFromStorageFile
procedure LoadFromStorageFile
procedure LoadFromRepository
procedure LoadFromRepository
procedure SaveToSQLServer
procedure LoadFromSQLServer
procedure LoadFromSQLServer
procedure SaveAs
...

Talvez podrías probar con ellos a ver si en lugar de generarlo de 0, puedes importarlo o leerlo desde algun sitio.

agustibaldo 19-03-2009 15:55:46

Estimado Neftali, disculpa mi ignorancia pero precisamente no logro crear el DTS (independientemente si lo creo desde 0 o lo realizo mediante un wizard)

He probado usar el DTSWizard que trae SQL Server 2005 pero pude generar el archivo .dts para llamarlo, ya sea desde Delphi o desde un SP.

Como puse en la introducción del hilo, no tengo mucha experiencia y no se como crearlo. Si a partir de código, desde un wizard, etc.

Desearía que me orientes sobre este tema.

Nuevamente gracias.

Neftali [Germán.Estévez] 19-03-2009 17:42:55

Bueno, en mi caso, he hecho la prueba y he logrado llegar a generar el fichero DTS sin problemas. Yo estoy con SQL Server 2000, pero supongo que el proceso es similar.

En mi caso lanzo desde el programa de Administración una operación de Importar/exportar y eso abre el DTSWizard o "Asistente de Importación/exportación con DTS".



A partir de ahí, siguiendo los pasos llegas a realizar la importación/exportación.

* Ejemplo1
* Ejemplo2

En concreto hay una de las pantalla (debe ser similar a esta que hay debajo) que permite guardar el DTS en un fichero.



En ese punto deberías guardarlo y posteriormente con la Clase/Unit que hemos comentado podrías intentar importar o leer ese fichero.

Unit DTS_TLB y la clase TPackage.

agustibaldo 20-03-2009 13:57:16

Muchas gracias Neftali por darme una mano.

Voy a probar lo que me sugeriste.

Un abrazo.

__hector 26-03-2009 20:51:07

Los DTS no existen en la version 2005, o al menos no en su concepcion original. Lo primero es que viene integrado en una herramienta adicional, llamada Integration Services (SSIS), que de por si no esta disponible para la version Express de SQL Server.

Lo segundo es que, cuando instalas una version de SQL Server 2005 que si trae Integration Services, SQL Server tiene una herramienta adicional que se llama Sql Server Business Studio (o algo parecido), que no es mas que el IDE de Visual Studio 2005 soportando aplicaciones tipo Integration Services. Es decir, el editor del DTS ya no es parte de la consola de SQL Server (anteriormente, el Enterprise Manager), sino que viene aparte.

A partir de ahi, todo es practicamente igual, en el sentido de los flujos, componentes, etc.

Finalmente, para ejecutar esos paquetes periodicamente, puedes escribirte un programita en Delphi como vienes queriendo hacer, o programar un job que lo haga automaticamente con el SQL Server Agent, que tampoco viene en la version Express de SQL Server.

Recomendacion: consiguete la version developer o standard, y parte de ahi.

agustibaldo 06-04-2009 16:54:26

Hector gracias por tu respuesta, pero concretamente: que opciones tengo?

* Puedo crear un DTS (o algo similar) utilizando SQL Server 2005 Express?
* Existe alguna herramienta gratis o paga para realizarlo?
* Existe alguna forma o método de reemplazar los DTS por un Stored Procedure que lea datos de un DBF y escriba en una tabla SQL?

Agradezco nuevamente tu ayuda.

Saludos.

Johnny Q 08-04-2009 01:53:57

Reafirmo lo dicho por Hector; en SQL Server 2005 no existen los DTS como se conocian en SQL Server 2000. Ahora bien, para responder tu pregunta es necesario que entiendas los siguiente:

1. Para crear algo similar a los DTS debes contar con la herramienta llamada SQL Server Integration Services (SSIS) que permite elegir fuentes de datos, hacer transformaciones y llevarlas a un destino a grosso modo.

2. SQL Server 2005 Express no cuenta con la herramienta SSIS, la única forma de obtener esta herramienta paga es actualizandote a la Edición Standard

3. Existe algo llamado BULK INSERT que tal vez te permita leer los datos de un archivo y colocarlos en una tabla de SQL Server, aquí te dejo el enlace http://msdn.microsoft.com/es-es/library/ms188365.aspx


La franja horaria es GMT +2. Ahora son las 22:35:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi