none
Telecharger un fichier FTP à partir d'une requette sql RRS feed

  • Question

  • 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



    -----------------------------------------------------------------



    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.

    mercredi 5 décembre 2012 09:32

Réponses

Toutes les réponses