Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Ejecutar dts si no se realiza copia en ftp!!

Hola tengo un problema en el que llevo varios dias trabajando y buscando pero no encuentro nada. Me seria muy muy util su ayuda y de antemano agradezco.
El problema es el siguiente:
Tengo un metodo que copia en un ftp un determinado archivo con TIdFTP, eso lo hace correctamente. Quiero que cuando no se pueda producir esa copia debido a alguna falla que pueda presentar el sistema se active un dts que copie el archivo en el ftp, eso ya lo tengo hecho tambien, o sea el dts funciona correctamente cuando lo hago de forma manual. Ahora el problema seria que cuando no se pudiera realizar la copia mediante el metodo que tengo implementando el dts se ejecute hasta que la copia se realice correctamente, porque puede ser que lo intente la primera vez y no se copie el archivo en el ftp, o sea que siga intentandolo hasta que el archivo se haya copiado correctamente.
Muchas Gracias desde ya por la atencion brindada.
Responder Con Cita
  #2  
Antiguo 13-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.101
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

¿Y qué tiene que ver esto con SQL?
Responder Con Cita
  #3  
Antiguo 13-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Ejecutar dts hasta que se realice copia

Pense que si mi pregunta trataba sobre los dts quizas el mejor lugar para ponerla era en el foro de sql pero ya que la movieron pues debe ser aqui el mejor sitio.
Concretamente quisiera saber si existe alguna forma de ejecutar un dts hasta que realice la copia de la informacion a un ftp de forma satisfactoria. Gracias.
Responder Con Cita
  #4  
Antiguo 13-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué es un dts?

// Saludos
Responder Con Cita
  #5  
Antiguo 13-11-2012
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Que pena... pero que es exactamente un dts?

Ahora si lo que entendí es correcto. lo que necesitas es validar el resultado de la operación para intentar repetirla si fué fallida.

Podrías crear una función para subir al ftp que te devuelva el resultado de la carga (True/False) y si es false validar para volver a ejecutar n veces hasta obtener el resultado correcto.

Algo así:

Código Delphi [-]
function SubirEnFTP : boolean;
begin
  try
    //lineas para subir
    Result := True;
  except
    //Lineas para el manejo del error
    Result := False;
  end;
end;

procedure SubirArchivos
  var
    CanIntentos : Smallint;
begin
  CanIntentos := 5;
  while CanIntentos > 0 do
  begin
    if SubirEnFTP then
      Break;
    dec(CanIntentos);
  end;  
end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #6  
Antiguo 13-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Me extraña, roman y movorac... : DTS

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-11-2012 a las 21:58:55.
Responder Con Cita
  #7  
Antiguo 13-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Los DTS's

Hola, gracias por responder. Los DTS, por sus siglas en ingles son Data Transformation Services, y vienen incluidos dentro de SQL Server 2000, son paquetes de ejecucion de tareas, que como ya dije anteriormente mediante uno ya logro que me copie un archivo en el ftp en caso que mi metodo implementado falle.
Pero el problema es el siguiente: puede ser que el usuario quiera copiar el archivo en el ftp y en ese momento el sitio no este disponible, el usuario cierra la aplicacion y el dts debe ser capaz, de continuar con la copia del archivo, hasta que la realice correctamente, no parará, el usuario cerró el sistema pero la base de datos se mantiene corriendo en el servidor.
Responder Con Cita
  #8  
Antiguo 13-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Aclarado el término, moví el hilo al foro MS SQL Server.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 14-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Melissa_12.

Como te habrás dado cuenta mi conocimiento sobre MS SQL Server (y sobre todo de DTS) es muy pobre, pero te pongo unos enlaces donde se relaciona a Delphi con ellos:Espero que alguno te sea de utilidad.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 14-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.101
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo tampoco sabía qué era eso de DTS, está claro.
Responder Con Cita
  #11  
Antiguo 14-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Hola!, gracias por responder.
Esos ejemplos estan muy buenos, de hecho si creo que me sirvan para llamar al DTS la primera vez si la copia falla cuando lo trate hacer desde mi metodo, pero el problema es que necesito que cuando el usuario cierre la aplicacion SQL Server continue tratando de realizar la copia en el ftp. He leido algo que se puede hacer con los Jobs de SQL pero no se muy bien como hacerlo, ademas que no se como parar cuando la copie se realice de forma correcta en el ftp. Alguien me dijo que el ftp puede tener variables que se activan cuando la copia se hace correctamente y se desactivan cuando se produce algun error pero la verdad es que no se me ocurre como hacerlo. Alguna idea se los agradecere. Graciassssss.
Responder Con Cita
  #12  
Antiguo 14-11-2012
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola melissa_12

Pues, básicamente es una mezcla de los aportes que te hemos dado y un poco mas de investigación de tu parte.

EL primer paso es: Si al subir al FTP falla ejecute el DTS si no trabaje normalmente. Esto se puede conseguir muy fácil. Solo debes agregar un manejo de errores al proceso de subida y puedes si quieres meterlo dentro de una función para que te sea mas fácil.

Código Delphi [-]
function SubirEnFTP : boolean;
begin
  try
    //lineas para subir al FTP
    Result := True;
  except
    //Lineas para el manejo del error
    Result := False;
  end;
end;

procedure SubirArchivos
begin
  //Aqui ejecutara la subida de archivos y si no 
  //es satisfactoria ejecutará el dts
  if not SubirEnFTP then
      FuncionParaEjecutarDTS; //Aqui colocarás el codigo que realices para ejecutar el DTS desde delphi con el cual te ha ayudado Ecfisa
end;

Esto es solo el comienzo. el resto debes completarlo, investigando, programando e intentando.

A mi me queda la duda si al finalizar el programa como finaliza la transacción que llamó al DTS, finalizaría ese DTS. No se como digo me queda esa duda y si llegase a ser así entonces deberás atacar el problema con otra solución.

Se me ocurriría crear una tabla donde recibiera información de tareas ftp a ejecutar y un job de SQL estuviese revisando periódicamente esta tabla y una vez lo halla ejecutado marque su estado como tarea inactiva.

En este escenario, delphi trataría de ejecutar la subida de archivos y en caso de fallar registraría la tarea en la tabla. así al finalizar el programa se cierra la transacción pero la tarea que se ejecuta continuamente en el servidor haría su trabajo en el momento necesario. Esto también brindaría un mecanismo de revisión de las tareas ftp programadas.

Saludos, y como dije es apenas el comienzo.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #13  
Antiguo 14-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Muchas Gracias por responder movorack, ciertamente la idea que me has dado puede ser un camino viable para darle solucion a mi problema. Pero no se mucho acerca de programar un job, de hecho trate de hacer uno mediante una pagina donde lo explicaba y me dio error, tienes algun enlace donde pueda encontrar algo que sea de ayuda?
Responder Con Cita
  #14  
Antiguo 14-11-2012
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Permiteme y te lo busco en google:
http://lmgtfy.com/?q=MS-SQL+Create+a+job
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #15  
Antiguo 16-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Hola!, pues ya hice el job y funciona bien, con un problema ya que bloqueo el ftp que tengo y el job me dice que la tarea se ha ejecutado correctamente, y no es asi ya que el archivo no esta en el ftp, pues claro este esta bloqueado. No se que podra ser?
Responder Con Cita
  #16  
Antiguo 16-11-2012
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Hola, pues ya he resuleto el problema que he planteado anteriormente, he puesto en una tabla el resultado que arroja el dts y problema resuelto.
Ahora se me ha presentado otro ya que quiero que en el job que he hecho tengo dos pasos, el primero para determinar si el ftp esta disponible y el otro para copiar el archivo al ftp, quiero que si el ftp no esta disponible(o sea el paso 1) el job no ejecute el paso 2 y vuelva a intentar en el tiempo que yo le indique. Gracias!!!!!!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
no realiza CopyFile en red de un archivo ingabraham Varios 9 31-05-2011 19:31:48
No realiza el update :( nosferatu177 MySQL 2 29-05-2008 17:42:10
Copia de tablas como copia de seguridad Mathom Varios 4 04-01-2006 09:19:57
Copia de seguridad y restablecer copia en paradox Sayuri Conexión con bases de datos 4 30-08-2005 17:08:37
¿¿¿¿Quien realiza el Commit???? AGAG4 Conexión con bases de datos 4 07-10-2004 02:11:22


La franja horaria es GMT +2. Ahora son las 02:53:08.


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
Copyright 1996-2007 Club Delphi