Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-11-2007
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
IBX + delphi7 + Implementacion profesional de Backup

Hola a todos.
Ya tengo practicamente acabada mi nueva aplicacion pero para finalizar necesito que determinado usuario pueda realizar copias de seguridad de toda la base de datos IBX. He estado mirando en la ayuda de D7 y he encontrado lo siguiente:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  with IBBackupService1 do
  begin
    ServerName := 'Poulet';
    LoginPrompt := False;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active := True;
    try
      Verbose := True;
      Options := [MetadataOnly, NoGarbageCollection];
      DatabaseName := 'c:\interbase\examples\database\employee.gdb';
      BackupFile.Add('c:\temp\e1.gbk = 2048');
      BackupFile.Add('c:\temp\e2.gbk' = 4096);
      BackupFile.Add('c:\temp\e3.gbk'); ServiceStart;
      While not Eof do
        Memo1.Lines.Add(GetNextLine);
    finally
      Active := False;
    end;
  end;
end;
Se realiza con un componente llamado IBBackupService que viene integrado en Delphi 7. Pero no me gusta la implementacion. ¿Alguien me puede echar un cable? Muchas gracias.
Responder Con Cita
  #2  
Antiguo 21-11-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y qué parte no te gusta?
Responder Con Cita
  #3  
Antiguo 21-11-2007
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
En primer lugar: Gracias por contestar.
No me gusta porque creo que no está bien implementado de cara al usuario. Si ejecuto ese codigo la copia de seguridad se realiza sin problemas segun el nombre/s que yo le asigno pero lo que no me gusta es:
1. Tarda bastante y el programa se queda como bloqueado. El usuario puede pensar que se ha bloqueado el pc. Deduzco que la tardanza se debe a la negociacion que realiza el componente de cara al acceso a la bd.
2. Una vez que empieza a escribir en el control memo lo hace tan rapido que no se lee nada porque cierra el formulario.

Vamos, en definitiva, pienso se podría implementar mejorando estos aspectos pero ¿como? Por ejemplo para solucionar el primer punto se podria conectar una barra de proceso terminado en tanto por ciento. Pero no se como realizar esto.

Un saludo.

Última edición por gorsan fecha: 21-11-2007 a las 13:21:52.
Responder Con Cita
  #4  
Antiguo 21-11-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por gorsan Ver Mensaje
[..]lo que no me gusta es:
1. Tarda bastante y el programa se queda como bloqueado. El usuario puede pensar que se ha bloqueado el pc. Deduzco que la tardanza se debe a la negociacion que realiza el componente de cara al acceso a la bd.
Está haciendo un backup de la base de datos, el usuario debería esperar a que termine y nada más. La rapidez (o lentitud) dependerá de muchos factores, ordenador, discos, tipo y sistema operativo del servidor, etc.
Cita:
Empezado por gorsan Ver Mensaje
2. Una vez que empieza a escribir en el control memo lo hace tan rapido que no se lee nada porque cierra el formulario.
¿No se lee nada?, bueno, no creo que el usuario entienda (o tenga que entender) lo que pone, a fin de cuentas es una lista de dominios, tablas con sus campos, procedimientos, triggers, etc.
Lo de que se cierra el formulario... pues habría que ver cómo lo haces, porque esa ese procedure que has puesto lo único que hace es mandar la salida del gbak a un memo, por si quieres leerlo o guardarlo. Lo que hagas con el formulario donde está el memo... eso depende de tí y de cómo quieras presentarlo.
Responder Con Cita
  #5  
Antiguo 21-11-2007
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 20
tefots Va por buen camino
Hay varias formas de evitar que la aplicacion se quede esperando a que finalize el backup.

la primera y mas facil es poner vervose=false
en este caso , al llamar a start service , el backup se realiza , pero el control vuelve inmediatamente a la aplicacion, con lo que el servidor firebird sigue haciendo el backup por su cuenta y la aplicación puede continuar su proceso normal.

si necesitas guardar el resultado del backup, entonces tienes que crear un thread , y en el execute de ese thread realizar el backup tal como lo estas haciendo . así la aplicación puede continuar , y cuando el thread finalize o el backup finalice , entonces informar al usuario que el backup se ha realizado.
si usas threads para realizar el backup , ten en cuenta que el thread ha de tener su propia ibtransaccion y su propio ibdatabase , de lo contrario te cascara , ya que estos componentes ibx no son threadsafe.

saludos.



saludos.
Responder Con Cita
  #6  
Antiguo 21-11-2007
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Bueno lo que he querido decir es que para ocupar el tiempo que el programa emplea en hacer el backup no estaría nada mal poner una barra de proceso o algo asi para dar la sensacion de que le programa esta haciendo algo. Pero no se como realizar esto.
En cuanto a lo de que se cierra el formulario y no se lee nada del control memo, me he dado cuenta que es por la forma en que muestro el formulario. Lo estaba haciendo con showmodal y eso hace que se cierre cuando acaba. Ahora le muestro solo con el metodo show y ya se puede leer el contenido del memo.
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
donde puedo comprar libros en mexico, la biblia de delphi7 y mastering delphi7? sakuragi Varios 30 12-02-2013 18:37:51
IMplementacion de un parser bustio Varios 10 07-12-2007 17:50:10
Implementacion de sql a un qreport!! magnu9 Impresión 1 09-11-2006 21:46:01
Implementación de Backup/Restore en aplicación Jesús Pena Firebird e Interbase 7 26-12-2005 15:11:30
Implementacion POO y UML Leonardo OOP 1 19-10-2005 15:51:13


La franja horaria es GMT +2. Ahora son las 12:06:46.


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