Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Export xml файл на папку FTP / 10 сообщений из 10, страница 1 из 1
22.03.2019, 10:27
    #39789929
Hovo Avanesyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Код: sql
1.
2.
3.
4.
5.
SET @bcpCommand = 'bcp "' + @SQLCode + '" queryout '
SET @FilePath = ?
SET @OutputFile = @DateGet
SET @bcpCommand = @bcpCommand + @FilePath + @OutputFile + ' -c -t, -T -S HOVO-PC\ASACC14'
exec master..xp_cmdshell @bcpCommand





Как экспортировать файл в эту папку (FTP folder - ftp://173.249.12.81/ )

Спасибо
...
Рейтинг: 0 / 0
22.03.2019, 10:54
    #39789937
Serп
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Hovo Avanesyan,

как вариант:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Declare 
		@command nvarchar(2000),
		@ftpcommand varchar(4000),
		@FS int, 
		@OLEResult int, 
		@FileID int


	   
set @ftpcommand = 'login
pass
put '+@FilePath + @OutputFile+'
quit';

EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUTPUT
execute @OLEResult = sp_OAMethod @FS,'CreateTextFile',@FileID OUTPUT, 'c:\temp\PutFile.txt'
execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', NULL, @ftpcommand
EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestroy @FS 	
set @Command = N'ftp -s:c:\temp\PutFile.txt 173.249.12.81'
EXEC xp_cmdshell @command
...
Рейтинг: 0 / 0
22.03.2019, 11:09
    #39789944
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Hovo Avanesyan
Код: sql
1.
2.
3.
4.
5.
SET @bcpCommand = 'bcp "' + @SQLCode + '" queryout '
SET @FilePath = ?
SET @OutputFile = @DateGet
SET @bcpCommand = @bcpCommand + @FilePath + @OutputFile + ' -c -t, -T -S HOVO-PC\ASACC14'
exec master..xp_cmdshell @bcpCommand




Как экспортировать файл в эту папку (FTP folder - ftp://173.249.12.81/ )

Спасибо

1. Выгружаем файл на локальный диск.
2. Любым клиентом FTP копируем его на FTP-сервер.
3. PowerShell - выбор настоящего джигита.
...
Рейтинг: 0 / 0
22.03.2019, 11:17
    #39789948
Hovo Avanesyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
aleks222,

Xml генерируется при работе stored procedure автоматически.
На локальный диск без проблем работает. Можно прямим обращаться к ftp и экспортировать туда ?

Вот пример
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
USE [Raf_Flor_Trade]
GO
/****** Object:  StoredProcedure [dbo].[asp_deleteMT]    Script Date: 3/21/2019 7:31:32 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[asp_deleteMT]   @MTID int , @TS varbinary(8) , @RowCount int OUTPUT   AS     


DECLARE @Unit nvarchar(max) = ISNULL((SELECT fUNIT FROM MATERIALS WHERE fMTID = @MTID), '')
DECLARE @Group nvarchar(max) = ISNULL((SELECT fGROUP FROM MATERIALS WHERE fMTID = @MTID), '')
DECLARE @GCaption nvarchar(max) = ISNULL((SELECT fCAPTION FROM MTGROUP WHERE fCODE = @Group),'')
DECLARE @UCaption nvarchar(max) = ISNULL((SELECT fCAPTION FROM QNTUNIT WHERE fCODE = @Unit),'')
DECLARE @Caption nvarchar(max) = ISNULL((SELECT fCAPTION FROM MATERIALS WHERE fMTID = @MTID),'')
DECLARE @Code nvarchar(max) = ISNULL((SELECT fMTCODE FROM MATERIALS WHERE fMTID = @MTID),'')
DECLARE @Discount nvarchar(max) = ISNULL((SELECT fDISCOUNT FROM MATERIALS WHERE fMTID = @MTID),'')
DECLARE @Price nvarchar(max) = ISNULL((SELECT fPRICE FROM PRICES WHERE fMTID = 100912 AND fDATE =  (SELECT MAX(fDATE) FROM PRICES WHERE fMTID = @MTID) AND fPRICETYPE = '02'), '')
DECLARE @GetDate nvarchar(max) = REPLACE(REPLACE(REPLACE(convert(varchar, getdate(), 121), ':', ''), '.', ''), ' ', '')
DECLARE @DateGet nvarchar(max) = @GetDate + '.xml'
DECLARE @OutputFile NVARCHAR(100) ,    @FilePath NVARCHAR(100) ,    @bcpCommand NVARCHAR(1000)



DECLARE @SQLCODE nvarchar(4000) =
'SELECT ''Delete'' AS [Type], ''' + @Code + ''' AS Code, N''' + @Caption + ''' AS Name, ''' + REPLACE(@Unit,' ','') + ''' AS UnitCode, N''' + @UCaption + ''' AS UnitName, ''' + REPLACE(@Group,' ','') + ''' AS GroupCode, N''' + @GCaption + ''' AS GroupName, ''' +convert(varchar, @Price)+ ''' AS Price, ''' +convert(varchar, @Discount)+ ''' AS Discount FOR XML PATH (''ROW''), ROOT (''ROWS'')'


SET @bcpCommand = 'bcp "' + @SQLCode + '" queryout '
SET @FilePath = 'C:\aaa\' -- как поменять на ftp folder
SET @OutputFile = @DateGet
SET @bcpCommand = @bcpCommand + @FilePath + @OutputFile + ' -c -t, -T -S HOVO-PC\ASACC14'
exec master..xp_cmdshell @bcpCommand

DELETE FROM MATERIALS     WHERE fMTID = @MTID AND fTS = @TS     SET @RowCount = @@ROWCOUNT 
...
Рейтинг: 0 / 0
22.03.2019, 14:06
    #39790053
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Hovo Avanesyan Можно прямим обращаться к ftp и экспортировать туда ?
Канешно можно.

BCP доступен в сборках .NET.
FTP клиент - тоже там есть.

Делоффф то. Берешь и пишешь программулину.
...
Рейтинг: 0 / 0
22.03.2019, 14:24
    #39790077
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Hovo AvanesyanМожно прямим обращаться к ftp и экспортировать туда ?

это, походу, ищешь - Команда FTP
Только учти, с этим есть веский "ньюанс" :)
авторКак видно из списка перечисленных команд, стандартный клиент FTP в операционных системах Windows поддерживает далеко не полный перечень стандартных ftp-команд и, что самое неприятное, он не поддерживает команду переключения в пассивный режим ( passv ) обмена с сервером FTP, что делает его непригодным для обмена данными с серверами FTP, подключение к которым выполняется с использованием технологии трансляции сетевых адресов NAT. Другими словами, для обмена файлами с внешними, по отношению к подсети клиента, серверами, стандартный FTP-клиент не подходит. Это касается всех версий Windows, включая и Windows 10. Именно этот факт предопределяет область использования утилиты ftp.exe - только в локальных сетях, где возможно прямое TCP-соединение между клиентом и сервером .
...
Рейтинг: 0 / 0
22.03.2019, 14:26
    #39790084
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
собственно, выше - 21840441 , это уже и показали
...
Рейтинг: 0 / 0
28.11.2019, 17:27
    #39895823
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Serп
Hovo Avanesyan,

как вариант:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Declare 
		@command nvarchar(2000),
		@ftpcommand varchar(4000),
		@FS int, 
		@OLEResult int, 
		@FileID int


	   
set @ftpcommand = 'login
pass
put '+@FilePath + @OutputFile+'
quit';

EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUTPUT
execute @OLEResult = sp_OAMethod @FS,'CreateTextFile',@FileID OUTPUT, 'c:\temp\PutFile.txt'
execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', NULL, @ftpcommand
EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestroy @FS 	
set @Command = N'ftp -s:c:\temp\PutFile.txt 173.249.12.81'
EXEC xp_cmdshell @command



СПАСИБО ВАМ за этот вариант!
Пригодилось!)
Вопрос правда есть - как изменить папку в которую записывается файл, т.е копировать не в корень "173.249.12.81", а например в
"173.249.12.81/public_html/zub/tmp/stockTEST.csv"
...
Рейтинг: 0 / 0
28.11.2019, 17:41
    #39895834
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
-SWAN-

СПАСИБО ВАМ за этот вариант!
Пригодилось!)
Вопрос правда есть - как изменить папку в которую записывается файл, т.е копировать не в корень "173.249.12.81", а например в
"173.249.12.81/public_html/zub/tmp/stockTEST.csv"


Воспользоваться гуглом.

Например: https://ab57.ru/cmdlist/ftp.html

Вам, видимо, нужно в перечень команд добавить cd с путем к нужному каталогу.
...
Рейтинг: 0 / 0
29.11.2019, 11:52
    #39896231
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Export xml файл на папку FTP
Minamoto,
Спасибо за подсказку!
Всё получилось)))
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Export xml файл на папку FTP / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]