Рейтинг:
0
Jochen Arndt
Это зависит от того, какое приложение вы используете для загрузки файлов по FTP. Некоторые из этих приложений могут быть написаны по сценарию или поддерживать загрузку с помощью одного вызова командной строки. Затем вызовите такой скрипт / командную строку из пакетного (Windows) или shell (Linux) скрипта, проверьте возвращаемое значение и действуйте соответственно (переместите файл).
Для WinSCP это хорошо документировано примерами: Автоматизировать передачу файлов (или синхронизации) к серверу FTP или SFTP :: помощью WinSCP[^]. Смотрите там последний раздел Проверка результатов скрипта например пакетный файл, в котором вам нужно только заменить программа sendmail звонки по телефону move
команды и использовать соответствующий WinSCP файл сценария, как описано также на этой странице.
Akshay Gate
Я хочу сделать этот общий процесс с помощью SQL...
Jochen Arndt
Затем вы должны указать, какой компонент database engine вы используете и как вы фактически загружаете файл.
Но это похоже на мое решение при создании командной оболочки и выполнении команды (которая, вероятно, является сценарием оболочки):
Просто получите возвращаемое значение в вашей хранимой процедуре SQL.
Например, при использовании T-SQL с xp_cmdshell:
DECLARE @result int;
EXEC @result = xp_cmdshell @cmd;
IF (@result = 0)
PRINT 'Success'
ELSE
PRINT 'Failure';
Просто выполните дополнительные команды оболочки вместо печати, чтобы переместить файл.
Akshay Gate
Объявить @CopyFromFTPScriptPath VARCHAR(500)
ОБЪЯВИТЬ @CMD VARCHAR(5000)
Объявить @RetVal int
SET @CopyFromFTPScriptPath = ( выберите значение 1 из AppConfig, где ConfigId= 41 )
--********************************Копирование файлов с FTP *********************************
Создать таблицу #tempfile (fileuploaded VARCHAR(8000))
SET @CMD="
SET @cmd = 'ftp.exe -i -s:' + @CopyFromFTPScriptPath
Вставить в #tempfile
СТАРПОМА МАСТЕР.ДБО.процедуры xp_cmdshell @ЦМД
выберите * из #tempfile
Усечение таблицы #tempfile
Я использую этот скрипт для копирования файла с локального диска на FTP, теперь я хочу знать, успешно ли скопирован мой файл или нет, если он успешно скопирован, то этот файл должен переместиться в другую папку того же диска, то есть в "папку BK", или в случае, если он не сможет скопировать файл, то этот файл должен переместиться в "папку ошибок" того же диска.
Не могли бы вы помочь мне решить эту проблему??
Заранее спасибо.
Jochen Arndt
Проверьте документацию вашего используемого FTP приложения ftp.exe о возвращаемом значении. Затем получите возвращаемое значение, как показано в моем приведенном выше комментарии. Если FTP-приложение не предоставляет возвращаемое значение при сбое используемой команды, необходимо использовать другое FTP-приложение.