Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Copia Seguridad Base Datos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Copia Seguridad Base Datos Responder citando

Hola estoy intentando copiar el archivo de la base de datos (interbase) .gdb.

Y hago esto:

DataModule4->IBDatabase1->Connected=false;
DataModule4->IBTransaction1->Active=false;
DataModule4->Clientes->Active=false;
DataModule4->Obras->Active=false;

AnsiString Origen="C:\\GestorCM\\bd\\GCM.GDB";
AnsiStringDestino="C:\\GestorCM\\CopiaSeguridad\\GCM.GDB";

CopyFile(Origen.c_str(),Destino.c_str(),false);

DataModule4->IBDatabase1->Connected=true;
DataModule4->IBTransaction1->Active=true;
DataModule4->Clientes->Active=true;
DataModule4->Obras->Active=true;

Copiar lo copia, lo que no consigo es restaurarlo.

Para restaurarlo :


DataModule4->IBDatabase1->Connected=false;
DataModule4->IBTransaction1->Active=false;
DataModule4->Clientes->Active=false;
DataModule4->Obras->Active=false;

AnsiString Origen="C:\\GestorCM\\CopiaSeguridad\\GCM.GDB";
AnsiString Destino="C:\\GestorCM\\bd\\GCM.GDB";
CopyFile(Origen.c_str(),Destino.c_str(),false);

DataModule4->IBDatabase1->Connected=true;
DataModule4->IBTransaction1->Active=true;
DataModule4->Clientes->Active=true;
DataModule4->Obras->Active=true;

Hago lo mismo pero a la inversa.


He estado buscando,pero no me aclaro con los ejemplos del Copyfile
Gracias un Saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Al menos en mi instalación (BCB 5) hay dos elementos en la paleta InterbaseAdmin que se llaman IBBackupService e IBRestoreService. No he encontrado documentación sobre ellos e Builder, pero todo apunta a que se emplean para hacer y restaurar copias de seguridad. )Imagino que serán similar a un TBatchMove.

Buscando en "San Google" Wink he encontrado referencias a ellos en el Club Delphi: Como se utilzia el IBRestoreService?. Vienen documentados los dos elementos, y aunque es para Delphi es fácil de adaptar.

Y en otro enlace encontré esto: Interbase. IBBackupService. O como hacer copias de seguridad

Espero que te valga.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Muchas, muchas gracias Angel

Ya te debo varias sidras

Un saludooo
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Ten cuidado, no sea que tome la palabra este verano Very Happy
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Anda amg que no pedirmelo a mi por el msn que ya lo tengo hecho Wink :

como bien dice angel necesitamos los objetos de esa patela.

Codigo para hacer el backup :



Código:

        String sfecha= DateToStr(Now());

         String d,m,a;
                d=sfecha.SubString(1,2);
                m=sfecha.SubString(4,2);
                a=sfecha.SubString(9,2);
                String fecha=d+"_"+m+"_"+a;


        IBBackupService1->ServerName="Local Server";
        IBBackupService1->LoginPrompt=False;
        //IBBackupService1->Active = True;
        IBBackupService1->Params->Add("user_name=sysdba");
        IBBackupService1->Params->Add("password=masterkey");
        IBBackupService1->Active = True;


        try
        {
        IBBackupService1->Verbose = True;
        TBackupOption IgnoreLimbo, NonTransportable;
        IBBackupService1->Options<<IgnoreLimbo<<NonTransportable>DatabaseName =ExtractFilePath(Application->ExeName)+"\HOBBYSOFTBD.GDB";
        IBBackupService1->BackupFile->Add(ExtractFilePath(Application->ExeName)+"\copias_de_seguridad\\"+fecha+".gbk");
        ModuloSQL->IBTransaction1->Active=true;
        ModuloSQL->IBTransaction1->Commit();
        IBBackupService1->ServiceStart();

             while (!(IBBackupService1->Eof))
                {
                BackupMemo->Lines->Add(IBBackupService1->GetNextLine());
                }
        }
        __finally
        {
        IBBackupService1->Active = false;
        }
        ShowMessage("Copia de seguridad creada corectamente en la ruta "+ ExtractFilePath(Application->ExeName)+"\copias_de_seguridad\\"+_fecha+".gbk");
        this->Close();




codigo para restaurar :

Código:

 try
        {

       ModuloSQL->IBTransaction1->Active=true;
       ModuloSQL->IBTransaction1->Commit();
        ModuloSQL->IBDatabase1->CloseDataSets();
        ModuloSQL->IBDatabase1->Close();
       
        IBRestoreService1->ServerName="Local Server";
        IBRestoreService1->LoginPrompt=False;
        IBRestoreService1->Params->Add("user_name=sysdba");
        IBRestoreService1->Params->Add("password=masterkey");
        IBRestoreService1->Active=True;

        IBRestoreService1->Verbose=True;
        TRestoreOption Create, UseAllSpace;

        IBRestoreService1->Options<< Replace<<UseAllSpace>PageBuffers=3000;
        IBRestoreService1->PageSize=4096;
        OpenDialog1->Execute();
        if(OpenDialog1->FileName.IsEmpty())
         return;
        IBRestoreService1->BackupFile->Add(OpenDialog1->FileName);

        IBRestoreService1->DatabaseName->Add(ExtractFilePath(Application->ExeName)+"\HOBBYSOFTBD.GDB");

        IBRestoreService1->ServiceStart();

                while (!(IBRestoreService1->Eof))
                {
                RestoreMemo->Lines->Add(IBRestoreService1->GetNextLine());
                }
        }
        __finally
        {
         IBRestoreService1->Active= False;
         ModuloSQL->IBDatabase1->DatabaseName=ExtractFilePath(Application->ExeName)+"\HOBBYSOFTBD.GDB";
         ModuloSQL->IBDatabase1->Open();

        }
        ShowMessage("Copia de Seguridad Restaurada satisfactoriamente");
        this->Close();


a mi este codigo me funciona bien espero que a ti tb.

un saludo!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.