PDA

Ver la Versión Completa : crear backups desde delphi


israel_01
04-06-2005, 17:40:46
Hola todo el club, ya lei varios de los problemas que escribieron y yo necesito ayuda por fa... me pueden decir que debo hacer o como programar en delphi 5 para que yo pueda sacar un backup de mi base de datos sin tener que abrir el IBConsole o el IBManager??
Una manito .........si se puede un ejemplito

Gracias ,saludos

jachguate
06-06-2005, 17:36:04
Podes hacerlo fácilmente invocando a gbak, construyendo una cadena con los parámetros necesarios para su ejecución y valiendote de ShellExecute (de la unidad ShellApi).

Hasta luego.

;)

israel_01
08-06-2005, 02:40:46
Hola jachguate gracias por responder pero podrias explicarme un poco mas detallado por fa...

gracias

jachguate
08-06-2005, 04:50:49
¿sabes hacer un backup desde la línea de comandos?

Si no, te recomiendo la lectura del "operations guide" de interbase 6.0.

Una vez sabes hacer el backup desde alli, simplemente lanzas la llamada desde delphi, donde podes dejar fija la línea de comandos o bien construirla dinámicamente (por ejemplo, para usar un nombre de archivo de backup distinto cada vez)

Ahora estoy algo frio en firebird, y no tengo a mano siquiera los manuales, para ponerte un ejemplo, pero estoy seguro que con unos minutos leyendo vos mismo vas a estar en capacidad de hacerlo ;)

Hasta luego.

;)

Spynosa
08-06-2005, 07:32:15
hola, si estas usando los ibx puedes usar un componente IBBackupService y hacer lo siguiente:


with IBBackupService1 do
begin
ServerName :='localhost';
LoginPrompt := False;
Params.Add('user_name=sysdba');
Params.Add('password=masterkey');
Active := True;
try
Verbose := True;
Options := [NonTransportable, IgnoreLimbo];
DatabaseName := edit1.Text;
BackupFile.Add(edit2.Text);
ServiceStart;
While not Eof do
Memo1.Lines.Add(GetNextLine);
finally
Active := False;
end;
end;

y para restaurarlo usa IBRestoreService:

with IBRestoreService1 do
begin
ServerName := 'Poulet';
LoginPrompt := False;
Params.Add('user_name=sysdba');
Params.Add('password=masterkey');
Active := True;
try
Verbose := True;
Options := [Replace, UseAllSpace];
PageBuffers := 3000;
PageSize := 4096;
DatabaseName.Add(edit1.Text);
BackupFile.Add(edit2.Text);
ServiceStart;
While not Eof do
Memo1.Lines.Add(GetNextLine);
finally
Active := False;
end;
end;

Casimiro Notevi
08-06-2005, 07:56:12
y si aun necesitas más ayuda, sólo has de poner "backup" en la opción de "Búsqueda" que está justito en el menú de aquí encima y encontrarás 193 hilos de amigos que han preguntado lo mismo ;)