Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Backup con SQL y Delphi (https://www.clubdelphi.com/foros/showthread.php?t=36292)

MRS@N 07-10-2006 04:31:40

Backup con SQL y Delphi
 
Hola a todos, estoy realizando un sistema de información con SQL y Delphi y quiera saber:
:cool:
¿¿Tendran algun código que me pueda ayudar a realizar un Backup y Restor de la base de datos desde Delphi??

Gracias...

nachoalbano 07-10-2006 04:53:49

Para el back up te lo paso, el restore... te lo debo
 
mira, la sintaxis de la query sql que tenes que disparar desde el delphi es la siguiente

Código SQL [-]
BackUp database basededatos
to disk = 'c:\archivo_backup'
with format



Asi Haces el backUp de la base y lo guardas en el archivo, el tema es que el archivo se hace referencia (esto creo que es asi) de la maquina que opera como motor del sql.

la sintaxis del restore es similar

Código SQL [-]
Restore database basededatos
frim disk = 'c:\archivo_backup'




Pero esta ultima no la he podido correr desde la misma aplicación, me dice que estoy manteniendo demasiadas conexiones sobre la base de datos. es por eso lo del titulo!!!!

si alguien sabe cual puede ser el problema, se lo agradezco.

seguido les paso el código de lo que estoy haciendo para el restore
gracias y suerte!!


Código Delphi [-]
 
procedure TfmPrincipal.LevantarBackUp1Click(Sender: TObject);
begin
  AbrirBackUp.InitialDir := PathAplicacion + '\backup\';
  if AbrirBackUp.Execute then
    if (trim(AbrirBackUp.FileName) <> '') then
    begin
      // SP_ es una query y no un SP
      // cierro la conexion
      dmPrincipal.Conexion.Connected := false;
      // cambio el string de conexion para que conecte con Master
      dmPrincipal.Conexion.ConnectionString := StringReplace(UpperCase(dmPrincipal.Conexion.ConnectionString),'BASEDEDATOS','master',[rfReplaceAll]);
      // hacemos la nueva conexion
      dmPrincipal.Conexion.Connected := true;
      SP_Levantar_BackUP.Close;
      SP_Levantar_BackUP.Parameters.ParamByName('@nombre').Value := PathAplicacion + '\backup\'+AbrirBackUp.FileName;
      SP_Levantar_BackUP.ExecSQL;
      if dmPrincipal.Conexion.Errors.Count > 0 then
        ShowMessage('NO SE A LEVANTADO EL BACKUP.'+CHR(10)+CHR(13)+'COMPRUEBE QUE NO EXISTAN CONEXIONES A LA BASE DE DATOS');
      // cerramos la conexion
      dmPrincipal.Conexion.Connected := false;
      // cambiamos el string de conexion por el original
      dmPrincipal.Conexion.ConnectionString := StringReplace(UpperCase(dmPrincipal.Conexion.ConnectionString),'MASTER','BASEDEDATOS',[rfReplaceAll]);
      // abro denuevo la conexion a Globesidad2
      dmPrincipal.Conexion.Connected := true;
    end;
end;

nachoalbano 07-10-2006 05:13:01

Necesito un poco mas de info
 
Has podido hacer algo desde delphi a la DB?
es decir, ya tenes la conexión establecida, has tirado alguna consulta a la base con alguna query sencilla?

cuando sepa eso puedo ayudarte un poco más!!

PD: preferible que envies los mensajes por aca y no como privados, asi los pueden ver todos

un abrazo!

MRS@N 07-10-2006 05:37:58

Si Vale
 
Si e hecho todo eso, consulta query y todo eso, lo q no se nada es sobre crear copia de seguridad y restaurarla...

Graciasssssss

Bicho 07-10-2006 18:18:30

Hola MRS@N, tambien sería bueno que nos comentaras un poco, que tipo de base de datos estas usando (Paradox, Acces, Interbase, Informix, Oracle, etc) y
que versión de Delphi estás usando.

Lo digo porque por ejemplo los componentes de Interbase que viene con Delphi 5 ya traen componentes para hacer Backup y Restore, y en versiones posteriores de Delphi, te puedes encontrar multitud de componentes y utilidades para hacer backup / restore.

Saludos

MRS@N 07-10-2006 21:29:31

Ok
 
Estoy usando SQL 2000, Delphi 7.0, creando DNS para la conexión....

Graciassssss

MRS@N 11-10-2006 02:08:39

Ayuda Por Favor
 
NO E PODIDO RESOLVER ESTO, TENGO UNA BASE DE DATOS DE NOMBRE BD_GOBER Y QUIERO RESPALDARLO, NO E PODIDO HACER ME PUEDEN EXPLICAR POR FAVOR.....

USO SQL SERVER 2000 Y DELPHI 7.0

gRACIAS........

Bicho 11-10-2006 10:11:22

Hola nuevamente
Indicas que:

Cita:

Empezado por MRS@N
Si e hecho todo eso, consulta query y todo eso, lo q no se nada es sobre crear copia de seguridad y restaurarla...

Yo creo que el código que te ha dado nachoalbano es claro.
Inserta en tú formulario un objeto ADOQuery, lo conectas a tu base de datos.
Y pones un botón de BackUp y otro de Restore.

En el primero pones el código del backup que te han dado ne la propiedad SQL del ADOQuery, y lo ejecutas, y para el restore lo mismo: codigo del restore en el SQL del adoQuery o metes directamente el codigo que te puso nachoalbano como alternativa y pruebas a ver que tal.
A ver si funciona y te hace el backup y el restore. Sino nos comentas que ha ocurrido, como lo has probado, pones el código que has probado y que problemas te ha dado (mensajes de error, etc...)

Y otra cosa; no escribas en mayúsculas por favor, respeta la Guía de Estilo y en especial este punto

Saludos


La franja horaria es GMT +2. Ahora son las 23:44:43.

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