Ver Mensaje Individual
  #2  
Antiguo 07-10-2006
nachoalbano nachoalbano is offline
Miembro
 
Registrado: sep 2006
Posts: 19
Reputación: 0
nachoalbano Va por buen camino
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;

Última edición por nachoalbano fecha: 07-10-2006 a las 04:56:52.
Responder Con Cita