This commit is contained in:
2024-03-07 16:52:14 +01:00
parent bb404b6ce6
commit 859a324c7e
203 changed files with 68602 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
USE [HCITools]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Purge_Replication_Backup]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[Purge_Replication_Backup]
GO
USE [HCITools]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Purge_Replication_Backup]
@in_debug int = null
AS
/*=============================================================================
Explication du traitement realise par la SP
-------------------------------------------
Cette SP sert à conserver uniquement le dernier backup de replication et supprimer les autres
Contexte d'utilisation
----------------------
Cette SP est appelée par le job D93120 - Purge Replication Backup
Parametres
----------
@in_debug : affichage des fichiers à supprimer
Creation : 19.04.17 / FLA
Modifications : 21.09.20 / RTC TFS 61470 Adapt sp after shared file config changes
19.02.21 / SPE #TFS63889# - Change job D93120 - Purge Replication Backup according to new settings
=============================================================================*/
SET NOCOUNT ON;
/*------------------- Declaration des variables --------------------*/
DECLARE @FileName varchar(255),
@Path varchar(255),
@dbVersion varchar(20),
@FileToDelete varchar(350)
/*------------ Affectation des parametres aux variables ------------*/
SET @dbVersion = ActivePos_write.upd.DatabaseVersion()
SET @FileName = 'ActivePos_read.' + @dbVersion + '.bak'
/*-------------------------- Traitement ---------------------------*/
BEGIN TRY
/* Parcours de l'ensemble des dossiers d'ini */
DECLARE c_Folders CURSOR LOCAL FORWARD_ONLY STATIC FOR
SELECT CONVERT(VARCHAR(400), SettingValue) + '\' as [path]
FROM ActiveSystemServer.cfg.Settings
WHERE SettingId like 'Values.Modules.Replication.DbInitializationBackupPath%'
AND len(SettingValue) > 1
UNION ALL
SELECT CONVERT(VARCHAR(400), SettingValue) + '\' as [path]
FROM ActivePos_server.dbo.Settings
WHERE SettingId like 'Values.Pharmacy.DbInitializationBackupPath%'
AND len(SettingValue) > 1
OPEN c_Folders;
FETCH NEXT FROM c_Folders
INTO @Path
WHILE @@fetch_status = 0
BEGIN
/* Parcours de l'ensemble des fichiers de backup sauf le dernier en date */
DECLARE c_FileNames CURSOR LOCAL FORWARD_ONLY STATIC FOR
SELECT Filename
FROM [dbo].[aps_Directory_Get_Files](@Path, '*.bak')
WHERE Filename <> @FileName
ORDER BY Filename
OPEN c_FileNames;
FETCH NEXT FROM c_FileNames
INTO @FileToDelete
WHILE @@fetch_status = 0
BEGIN
SET @FileToDelete = @Path + @FileToDelete
IF @in_debug = 1
PRINT @FileToDelete
ELSE
EXEC dbo.aps_File_Delete @path = @FileToDelete
FETCH NEXT FROM c_FileNames
INTO @FileToDelete
END
CLOSE c_FileNames
DEALLOCATE c_FileNames
FETCH NEXT FROM c_Folders
INTO @Path
END
CLOSE c_Folders
DEALLOCATE c_Folders
/*---------------------- Traitement des erreurs ----------------------*/
END TRY
BEGIN CATCH
/* Traitement des erreurs (avec RaiseError) */
EXEC dbo.get_Error_Info @in_RaiseError = 1
END CATCH
GO