Backup identificado con fecha y hora de la BD desde Clarion.

SQL, mySQL, postgreSQL y otros motores
Responder
Avatar de Usuario
mfernando
Novato
Mensajes: 21
Registrado: Lun Feb 07, 2011 12:47 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Backup identificado con fecha y hora de la BD desde Clarion.

Mensaje por mfernando » Mar Dic 27, 2011 6:22 pm

Con el objetivo de hacer una copia de la BD de mi app, pude armar un STORED PROCEDURE o PROCEDIMIENTO ALMACENADO (a gusto).
Si bien es muy sencillo para muchos puede ser complejo para varios. :)
Es una recopilacion de tips en Clarion y SQL adaptados a mi necesidad, basado especialmente en un hilo del foro de softvelocity.clarion.intl.spanish (Respaldos SQL) de Saul Perez fecha 18/10/2011 al cual agregue algunas lineas.
Funciona perfectamente haciendo copias de seguridad de Fecha y Hora + Bases de Datos SQL. (ej.: BASEDEDATOS_Full_20111226133311.BAK).
Es una buena forma "para prescindir del manager" la definio Mario, ya que la llamo desde clarion.
Seguro algo se podra mejorar, saludos.

!***********************************************************************

!EMBEBIDO EN CLARION
!Particularmente uso el embebido en la salida del sistema.
CASE MESSAGE('¿Desea respaldar la base de datos?| Este proceso puede tomar varios minutos', 'Respaldar BD', Icon:Question, 'Si|No', 1, 2)
OF 1
Clear(TABLA.Record)
TABLA{Prop:SQL} = 'CALL NOMBRE_PROCEDURE()'
IF FILEERRORCODE(); MESSAGE('Atencion Ocurrio un error en la Copia de Seguridad | Informe Incidencia...= '&FILEERROR(),'ERROR',ICON:HAND).
Next(TABLA)
message('Copia de Seguridad Finalizó Exitosa', 'Respaldar BD', ICON:Copy)
END
!***********************************************************

!EN EL MOTOR
1) Arrancando de 0(cero), crear un nuevo STORED PROCEDURE
2) Copiar y pegar sobre el script de nuevo stored procedure.
3) Guardar el Script
4) Ejecutarlo por unica vez en el motor. (la ejecución crea NOMBRE_PROCEDURE, veras que cambia la línea "CREATE PROCEDURE [dbo].[NOMBRE_PROCEDURE]" por "ALTER PROCEDURE [dbo].[BASEDEDATOS]" y se agregan dos líneas mas al inicio "USE BASEDEDATOS" y "GO")
5) Actualizar para ver que se creo el procedimiento almacenado.

/*** STORED PROCEDURE o PROCEDIMIENTO ALMACENADO ***/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Fernando M
-- ALTER date: 11/03/2209
-- Description: Respaldo de [BASE DE DATOS]
-- =============================================
CREATE PROCEDURE [dbo].[NOMBRE_PROCEDURE]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @dateTime NVARCHAR(20)
SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
-- Insert statements for procedure here
SET @sqlCommand = 'BACKUP DATABASE ' + '[BASEDEDATOS]' +
' TO DISK = ''C:\' + 'BASEDEDATOS' + '_Full_' + @dateTime + '.BAK'''
EXECUTE sp_executesql @sqlCommand
END
Fernando Mariño.
Buenos Aires - Argentina.


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado