PDA

Ver la Versión Completa : Backup automático de Base de datos


radenf
20-01-2009, 20:01:49
Estimados amigos:

Quisiera saber si es posible que una aplicación desarrollada en D7 y utilizando base de datos ADO, pudiera realizar un backup de la base de datos, en otro disco o carpeta, en forma automática al salir del programa.
De ser así, alguien podría sugerirme el código o dónde puedo buscar información al respecto.

Saludos y muchas gracias

coso
20-01-2009, 20:28:01
Hola, con esto


function CompactAndRepair(nombreorigen,nombredestino: string) : boolean;
var
v: OLEvariant;
begin { CompactAndRepair }
Result := True;
try v := CreateOLEObject('JRO.JetEngine');
try v.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + nombreorigen,
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + nombredestino +' ;Jet OLEDB:Engine type=5');
finally v := Unassigned
end;
except result := False
end;
end;



tendras una copia compactada y reparada si es el caso. saludos.

radenf
20-01-2009, 23:00:29
Muchas gracias [coso]. Lo voy a probar.
Disculpa mi ignorancia, ¿es posible hacer que el nombre destino sea elejible por el usuario?.

Saludos y gracias

coso
21-01-2009, 11:14:29
Pues si, claro que es posible. Tansolo deberas usar un opendialog antes de llamar a la funcion. Saludos.

radenf
21-01-2009, 12:54:54
Eternamente agradecido [coso], funciona a la perfección.
Personas como tú hacen grande a este foro.

Saludos

pablopessoa
16-03-2009, 13:48:54
me sumo al post por que estoy tratando de hacer algo similar.
Me sirve ese codigo en caso de que la base sea en Access? y otra cosa, esa funcion crea una compactacion de la base para usar de backup.. pero si una ves que la tengo compactada, la quiero restaurar, como seria?
Muchas gracias!!

coso
16-03-2009, 14:43:24
Hola,
si funciona en Access. En cuanto al compactar, no es el comprimir de zip, es un proceso interno para simplificar la base de datos: una vez compactada se puede abrir y leer de la misma manera, sin necesidad de ninguna operacion extra. saludos.

Patricio
26-03-2009, 13:45:53
hola disculpa pero en interbase como seria hacer una copia de seguridad?
Gracias