Bonjour,
J'ai un serveur FTP qui contient un fichier rapport.txt
Mon souci c'est que j'aimerai télécharger ce fichier dans mon PC mais le resultat est tjr sous forme de output est null
voici ma requette :
DECLARE @Result INT
EXEC P_FTP_GET
@FTPServer = N'adresse.fr', --
@FTPUser = N'Monlogin',
@FTPPwd =N'MonPWD',
@FTPFile =N'/rapport.txt',
@DestFile =N'C:/Fichier.txt',
@FileTemp =N'C:/FichierTemp.txt',
@Result = @Result OUTPUT
SELECT 'Resultat'= CASE WHEN @Result=1 THEN 'Transfert SUCCESSFULLY' ELSE 'ECHEC' END
-----------------------------------------------------------------
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P_FTP_GET]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[P_FTP_GET]
GO
CREATE PROCEDURE P_FTP_GET
@FTPServer nvarchar(100) ,
@FTPUser nvarchar(100) ,
@FTPPWD nvarchar(100) ,
@FTPFile nvarchar(100) ,
@DestFile nvarchar(100) ,
@FileTemp nvarchar(100) ,
@Result INT OUTPUT
AS
SET NOCOUNT ON
DECLARE @CMD nvarchar(4000)
DECLARE @TranferComplete INT
SET @Result = 0
-- Traitement des caractres spciaux
SET @FTPServer = replace(replace(replace(@FTPServer, '|', '"|"'),'<','"<"'),'>','">"')
SET @FTPUser = replace(replace(replace(@FTPUser, '|', '"|"'),'<','"<"'),'>','">"')
SET @FTPPWD = replace(replace(replace(@FTPPWD, '|', '"|"'),'<','"<"'),'>','">"')
SET @FTPFile = replace(replace(replace(@FTPFile, '|', '"|"'),'<','"<"'),'>','">"')
SET @CMD = 'echo ' + 'open ' + @FTPServer + ' > ' + @FileTemp
EXEC master..xp_cmdshell @CMD
SET @CMD = 'echo ' + @FTPUser + '>> ' + @FileTemp
EXEC master..xp_cmdshell @CMD
SET @CMD = 'echo ' + @FTPPWD + '>> ' + @FileTemp
EXEC master..xp_cmdshell @CMD
SET @CMD = 'echo ' + 'get ' + @FTPFile + ' ' + @DestFile + ' >> ' + @FileTemp
EXEC master..xp_cmdshell @CMD
SET @CMD = 'echo ' + 'quit' + ' >> ' + @FileTemp
EXEC master..xp_cmdshell @CMD
SET @CMD = 'ftp -s:' + @FileTemp
PRINT @CMD
--Insertion du resultat de la commande ftp dans la table @t
DECLARE @t table (id int identity(1,1), ftpmessage nvarchar(4000))
INSERT INTO @t
EXEC master..xp_cmdshell @CMD
-- Test du resultat du transfert FTP
SELECT @TranferComplete = count(id) FROM @t WHERE ftpmessage LIKE '%Transfer complete%'
IF (@TranferComplete >= 1)
SET @Result = 1
GO
--------------------------------------------
Le fichier FichierTemp.txt a été crée et il contient mon chemin ftp mon login et mot de passe ainsi le nom de fichier à telecharger.
Et Puis sql affiche Output=NULL et le fichier n'est pas télécharger !!
Merci d'avance.
Partager