Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-12-2008
DANY DANY is offline
Miembro
 
Registrado: nov 2003
Posts: 145
Poder: 23
DANY Va por buen camino
Debes hacer una busqueda en el foro, el tema ya se ha tratado.
Código Delphi [-]
var Consulta: TADOQuery ;
begin
  inherited;
  try
    Consulta := TADOQuery.Create(nil);
    Consulta.Connection := fDatos.ADOConnection ;

    Consulta.SQL.Add(' BACKUP DATABASE '+ nombreBaseDeatos+' TO DISK = '+QuotedStr(RutaBaseDeDatos));
    Consulta.ExecSQL ;


    MessageDlg('El backup se ha realizado con exito', mtInformation  , [mbOK], 0);

  Finally

    FreeAndNil(Consulta );
    

  End;
Va de ejemplo con un adoQuery.
Saludos.
Responder Con Cita
  #2  
Antiguo 02-01-2009
Avatar de Blaster
Blaster Blaster is offline
Miembro
 
Registrado: jun 2008
Ubicación: Miami, USA
Posts: 12
Poder: 0
Blaster Va por buen camino
Thumbs up Gracias por la ayuda

Saludos.

Me ha servido de gran ayuda. He redondeado la idea y al final hice lo siguiente:

Primero, ya sea desde la opción del Menú Principal de la aplicación o su correspondiente BarButton:

Código Delphi [-]
procedure TfrmPrincipal.SubMenuSalvarBaseDeDatosClick(Sender: TObject);
begin
  //Ante todo verifico si aun hay conexion con la BD
  if (HostalWare.ExisteConexionConLaBD = True)
    then
      begin
        //Ejecuto el procedimiento de Salvar Base de Datos
        SalvarBaseDeDatosHostalWare;
      end
        else
          begin
            MessageDlg('Se ha perdido la conexión con la base de datos.' + #13 + 'Inténtelo en otra ocasión', mtError, [mbOk], 0);
          end;
end;


Segundo, el procedimiento de la Interfaz Principal invoca a la Clase Madre Controladora:

Código Delphi [-]
procedure TfrmPrincipal.SalvarBaseDeDatosHostalWare;
begin
  //Ante todo verifico si aun hay conexion con la BD
  if (HostalWare.ExisteConexionConLaBD = True)
    then
      begin
        if (SaveDialogHostalWare.Execute)
          then
            begin
              //Salvo la base de datos en forma de fichero
              //HostalWare.SalvarBaseDeDatosHostalWare(QuotedStr(   SaveDialogHostalWare.FileName + '.BAK'   ));
              HostalWare.SalvarBaseDeDatosHostalWare(SaveDialogHostalWare.FileName + '.HBK'   );
            end;
      end
        else
          begin
            MessageDlg('Se ha perdido la conexión con la base de datos.' + #13 + 'Inténtelo en otra ocasión', mtError, [mbOk], 0);
          end;
end;

Luego, el procedimiento de la Clase Madre Controladora delega responsabilidades en la Clase Controladora correspondiente:

Código Delphi [-]
procedure TGestionCursistasHospedados.SalvarBaseDeDatosHostalWare(aCamino: String);
begin
  //Se invoca al procedimiento del Módulo correspondiente
  ModuloControlDelSistema.SalvarBaseDeDatosHostalWare(aCamino);
end;

Y esta es la que trabaja directamente con el procedimiento almacenado de la base de datos:

Código Delphi [-]
procedure TModuloControlDelSistema.SalvarBaseDeDatosHostalWare(aCamino: String);
begin
  //Se realiza la conexión con la BD
  DataModuleConexionGeneral.ADOConnectionGeneral.Connected:= True;
  DataModuleControlDelSistema.spSalvarBaseDeDatosHostalWare.Active:= False;
  
  //Le pasamos los parámetros al StoredProc
  DataModuleControlDelSistema.spSalvarBaseDeDatosHostalWare.Parameters.ParamByName('@vCamino').Value:= aCamino;

  //Aquí se hace la Salva de la BD
  //DataModuleControlDelSistema.spSalvarBaseDeDatosHostalWare.Open;  //<- No genera datos de respuesta el StoredProc, por eso se omite esto.
  DataModuleControlDelSistema.spSalvarBaseDeDatosHostalWare.ExecProc;
end;

Y por último, el procedimiento almacenado ejecuta lo siguiente:

Código SQL [-]
CREATE PROCEDURE [dbo].[SalvarBaseDeDatosHostalWare] 
@vCamino varchar(1000)
AS

BACKUP DATABASE GCHWare TO DISK = @vCamino;

GO

Muchas gracias por la ayuda recibida.
Saludos.
Reinier.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Copia de seguridad de mi BD jorgegetafe MySQL 6 15-01-2008 01:29:41
realizar copia de seguridad de bd interbase desde delphi ingabraham Firebird e Interbase 8 16-10-2007 18:02:01
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
Copia de Seguridad silviodp OOP 4 27-05-2004 15:18:53


La franja horaria es GMT +2. Ahora son las 14:43:48.


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