Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Respaldo desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=34899)

jdvc 24-08-2006 20:42:20

Respaldo desde Delphi
 
Como prodria realizar el respaldo de mi base de datos desde el programa realizado en Delphi, en tiempo de ejecucion, y tambien como restaurar esa copia.

droguerman 24-08-2006 23:58:43

what? gestor de base de datos, está en red??

jachguate 25-08-2006 15:51:50

Hola jdvc. En primer lugar bienvenido/a al ClubDelphi, el punto de encuentro de los programadores de habla hispana.

Te invito a leer, en primer lugar, la Guía de estilo de los foros. También te cuento que en estos foros se tratan temas diversos relacionados con la programación, entre ellos relacionados con diversos productos de bases de datos, desde las de escritorio como Paradox hasta las cliente servidor, como Firebird u Oracle.

Este foro donde has colocado la pregunta, es para tratar temas de SQL, sin embargo la tuya va mas relacionada con la forma de hacer un backup para algún producto específico, información que has obviado en tu mensaje.

Dado que estos foros se llevan adelante con el esfuerzo gratuito de muchas personas, todos seguimos la regla dicha por delphi.com.ar y que cito con mis propias palabras:

"Dedique el tiempo suficiente en plantear su pregunta si desea que alguien dedique el tiempo necesario para responderla"

Entiendo que cuando comenzas en esto no se tiene una idea clara de que información es relevante. Para ayudarte con esto, podes leer el tema de la calidad de las preguntas.

Saludos y nuevamente bienvenid@.

jdvc 28-08-2006 23:32:12

Realizar copias de repaldo
 
Gracias antes de todo, por las sugerencias.
Replanteando mi pregunta, elabore un programa en Delphi, utilizando SQL server para mi base de datos, en el programa quiero dar la posibilidad que el usuario haga respaldo de la BdD, cada vez que lo desee, he buscado formas diferente de hacer pero no me funcionan, podrian ayudarme a resolver este problema, tambien deseo restaurar la copia de respaldo.

Gracias, por su ayuda.

anghell77 30-08-2006 10:24:52

Antes que nada, Bienvenido a ClubDelphi.com. Jdvc.

Espero, que dada mi poca experiencia, los demás compañeros puedan mejorar el siguiente código que encontré un día en internet, no puedo dar la dirección porque acabo de dar formato a mi Ordenador y desafortunadamente, olvidé respaldar mis enlaces web.

Pido ayuda a los demás compañeros, pues aunque ésta función respalda la base de datos en una dirección asignada en tiempo de construcción, me resultaba una falta de información.

Me explico, yo entraba al Sistema, realizaba movimientos como actualizaciones, Altas, etc, y al momento de respaldar, lo hacía correctamente, hasta antes de dichos movimientos que acababa de hacer; por lo tanto era necesario entrar nuevamente al sistema y ejecutar otra vez en un BitBtn la función de respaldo, y sólo así me respaldaba los últimos movimientos...

A ver si ésta función se ajusta a lo que pide el compañero. Yo la empleé para Paradox, trabajando en Delphi7.

Añadiendo, ShellApi al Uses del Formulario donde se ejecutará el respaldo.

Código Delphi [-]
procedure TForm1.RespaldoClick(Sender: TObject);
function Respaldo_BD(Origen,Destino : String) :
   LongInt;
   var
     F : TShFileOpStruct;
     sOrigen, sDestino : String;
   begin
     Result := 0;
     sOrigen := Origen + #0;
     sDestino := Destino + #0;

     with F do
     begin
       Wnd   := Application.Handle;
       wFunc := FO_COPY;
       pFrom := @sOrigen[1];
       pTo   := @sDestino[1];
       fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
     end;
     Result := ShFileOperation(F);
 end;
begin
  Respaldo_BD('c:\CarpetaOrigen\Base_Datos\Nombre_Base_Datos\*.*', 'c:\CarpetaDestino\RESPALDO_BaseDatos\Nombre_Base_Datos');
end;

Espero y que a partir de ella vengan más ideas.

{Saludos}

jachguate 31-08-2006 21:33:05

Este método propuesto realiza una copia de archivos, pero esto en una base de datos como SQL Server no servirá (a menos que la base de datos no esté en uso), y está muy bien para un "backup en frio".

Sin embargo, sql server si tiene la posibilidad de hacer backups en caliente (con la base de datos en uso, usuarios conectados, etc). Sin embargo, por no ser mi base de datos favorita, desconozco los métodos. Esperemos que alguien con el conocimiento nos ilumine un mejor camino... :)

Saludos. ;)

Gedeon 02-09-2006 17:55:51

Hacer backup de base de Datos SQL Server, desde Aplicacion
 
Saludos.

Yo tenia el mismo problema, queria hacer que mi programa en Delphi hiciera respaldos de la base de Datos de Sql Server 2000 aun estando en uso y luego poder recuperarla aun si esta en uso.

Aun no le hecho todas las pruebas necesarias, pero ya me dio resultados...
SQL tiene dos funciones
BACKUP y RESTORE.
Ambas funciones poseen varios parametros para hacerlo mas a la medida

Con delphi corres las sentencias TRansac-SQL Siguiente:


Para crear el respaldo se hace asi:

BACKUP DATABASE [pubs] TO DISK = 'C:\backup_Pubs'

Y para recuperar se hace asi:

RESTORE Database Pubs from Disk = 'C:\backup_Pubs' WITH REPLACE

Espero te sirva, ami me sirvio.

Saludos.

GEDEON

jdvc 04-09-2006 18:33:04

Gracias
 
Hola GEDEON, voy a probar lo que me dices, y muchas gracias de antes que nada.


La franja horaria es GMT +2. Ahora son las 08:48:04.

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