verify_sync_folders
IF EXISTS (SELECT * FROM sysobjects
WHERE id = OBJECT_ID('dbo.verify_sync_folders')
AND sysstat & 0xf = 4)
DROP PROCEDURE dbo.verify_sync_folders
GO
CREATE PROCEDURE verify_sync_folders
@dbName VARCHAR(30) = ' ',
@devicePath VARCHAR(50) = ' ',
@deviceShare VARCHAR(80) = ' ',
@deviceFolder VARCHAR(30) = ' ',
@archive VARCHAR(80) = ' ',
@serverName VARCHAR(30) = ' ',
@debug VARCHAR(5) = 'false'
AS
DECLARE @myName VARCHAR(30),
@CMD VARCHAR(255),
@CMDstatus INT
/*
Procedure verify_sync_folders will check for and create if not present,
a folder with PKZIP and PKUNZIP along with a folder intended as a target
for any zipped files originating in the first folder. This procedure
requires that the admin subsystem file structure shell be in place
before the procedure is executed.
*/
/* stop now if any parm was not provided */
IF (@dbName = ' ') OR (@devicePath = ' ') OR (@deviceShare = ' ')
OR (@deviceFolder = ' ') OR (@archive = ' ') OR (@serverName = ' ')
RETURN 1
SET NOCOUNT ON
SELECT @myName = 'admin.verify_sync_folders'
SELECT @CMD = 'dir ' + @devicePath
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) -- failed
BEGIN
SELECT @CMD = 'mkdir ' + @devicePath + '\'
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) RETURN @CMDstatus
/* move a pkzip and pkunzip into the dump dump path */
SELECT @CMD = 'copy \\' + @serverName + '\' + @deviceShare + '\' +
@deviceFolder + '\pkzip.exe \\' + @serverName + '\' +
@deviceShare + '\' + @deviceFolder + '\' + @dbName
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) RETURN @CMDstatus
SELECT @CMD = 'copy \\' + @serverName + '\' + @deviceShare + '\' +
@deviceFolder + '\pkunzip.exe \\' + @serverName + '\' +
@deviceShare + '\' + @deviceFolder + '\'+ @dbName
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) RETURN @CMDstatus
END -- dump path does not exist
/* make sure an archive path exists for this database */
SELECT @CMD = 'dir ' + @archive
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) -- not found
BEGIN
SELECT @CMD = 'mkdir ' + @archive + '\'
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) RETURN @CMDstatus
END
RETURN
GO