Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная задача... странный вопрос.... задача с ... XML MSSQL файловая / 25 сообщений из 27, страница 1 из 2
01.02.2019, 20:20
    #39768489
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
В общем стоит задача. по мне бред сивой кобылы но есть.
1) скачать котировки в формате XML с сайта РосБанка на дату пример
http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002
2) СОХРАНИТЬ(! нафига) в файл ляляля +дата.XML НО в формате UNF8 что средствами чистым SQL до сервера 2019 не реально
3) записат данные в таблицу формата ( тут опять смешно... нафига ид если дата и так уникальна)
Код: sql
1.
2.
3.
4.
ID int identity(1,1),
date_ datetime,
bakc numeric(10,4),
eur numeric(10,4) 


4) опять юмор...ЗАМЕНИТЬ данные бакса и евро если они уже есть.... как-будто они поменяются годовалой давности...


1 вариант через ОЛЕ сделал 2 частично 3 и 4 дело 2х минут

проблема такая...как не используя написания своего ОЛЕ и (ненавижу) ЦРЛ.... выполнить КОДИРОВКУ в УТФ8. помогите плиз.

код скачки и сохранения... создания и пихание в таблицу уж не привожу- это ерунда

Код: 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.
36.
DECLARE   @obj int, @obj1 int, @obj2 int  
				, @hr int
				, @loadhr int =0
				, @src varchar(255)
				, @desc varchar(255)
				,	@url varchar(255) = 
					'http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002'
				, @r nvarchar(1000)  
				, @xml XML
				, @FilePath nvarchar(1024) = 'c:/lll.xml',
				@ww nvarchar(1009) = '<xsl:transform >
<xsl:output version="1.0" encoding="UTF-8" indent="yes" />

</xsl:transform>'
				
-- создаем ОЛЕ				
EXEC @hr = sp_OACreate 'MSXML2.DOMDocument', @obj OUT;  

-- параметры койкакие
EXEC @hr = sp_OASetProperty @obj,'async', False
-- грузим
EXEC @hr = sp_OAMethod @obj,'load', @loadhr OUTPUT, @url


-- проверка на "загруженность"
IF @loadhr <> 1  
begin
  RAISERROR ('что-то пошло не так с загрузкой',16,1);
  EXEC @hr = sp_OADestroy  @obj;  
  return;
end;
exec @hr = sp_OAMethod @obj2, 'save', null, @FilePath

-- убиваем
EXEC @hr = sp_OADestroy @obj;  
go




перекодить нарыл в инете пробовал но не вышло так ( по верхнему коду)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
EXEC @hr = sp_OACreate 'MSXML2.DOMDocument', @obj1 OUT;
EXEC @hr = sp_OASetProperty @obj1,'xsl', @ww
 
EXEC @hr = sp_OACreate 'MSXML2.DOMDocument', @obj2 OUT; 

-- параметры койкакие ... но тут с трансофр вышла кака

EXEC @hr = sp_OASetProperty @obj2,'async', False
EXEC @hr = sp_OAMethod @obj2,'load', @loadhr OUTPUT, @url
-- EXEC @hr = sp_OAMethod @obj,'transformNodeToObject', @loadhr OUTPUT,@obj1,  @obj2
 exec @hr = sp_OAMethod @obj2, 'save', null, @FilePath



помогите советом плиз)
СПС!
...
Рейтинг: 0 / 0
01.02.2019, 20:43
    #39768501
.Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto,

используйте SSIS.
...
Рейтинг: 0 / 0
01.02.2019, 20:44
    #39768502
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
а если подробнее пожалуйсто
...
Рейтинг: 0 / 0
01.02.2019, 20:47
    #39768503
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
а и да все должно быть в процедурке инкапсулировано
...
Рейтинг: 0 / 0
01.02.2019, 20:47
    #39768504
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
...
Рейтинг: 0 / 0
01.02.2019, 20:56
    #39768511
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
спс но опят не то

про это я знаю НО заснуть в обычную процедурку без привлечения таких танков...

типа DOMDocument или XMLHTTP такими ОЛЕ можно перекодировать в ютф8 и сохранить соответсвенно не занимась написания например на делфях своего ОЛЕ или скриптов на С#
вот в чем проблема
возсожно не верно выразился
...
Рейтинг: 0 / 0
01.02.2019, 21:11
    #39768518
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
проблема ПЕРЕКОДИРОВАТЬ в UTF8 ... что сама MSSQL не полволяет через коллейшен вплоть до 2019 версии
вот это проблема

решений я так понимаю нет(
...
Рейтинг: 0 / 0
01.02.2019, 21:17
    #39768521
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto,

зачем вам нужно пытаться изобрести велосипед если есть вполне готовые работающие решения?
или это домашнее задание?

задача решается через CLR но ее вы тоже не хотите
...
Рейтинг: 0 / 0
01.02.2019, 21:22
    #39768524
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanittoпро это я знаю НО заснуть в обычную процедурку без привлечения таких танков...

типа DOMDocument или XMLHTTP такими ОЛЕ можно перекодировать в ютф8 и сохранить соответсвенно не занимась написания например на делфях своего ОЛЕ или скриптов на С#
вот в чем проблема
возсожно не верно выразилсяНепонятно, что вам нужно.

Вот вы используете внешний софт, вызывая его через OLE.

Значит, можно решать задачу любым внешним софтом, вызывая его обязательно только через OLE?

Просто непонятно, какие у вашей задачи ограничения?
Что то вроде "Напишите запрос, из таких то таблиц по такому то алгоритму, не используя в коде букву А" - так, что ли?
...
Рейтинг: 0 / 0
01.02.2019, 21:35
    #39768528
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
ясно
CLR то понятно но
ОЛЕ то внешка. но я пишу на ДЕЛФИ и как я ее в .NET встрою... корячить на бейсике или С#? которых лет 10 не видел ?
или я что0то фундаментально не понимаю.... иду сдавать MSCA а чую себя школьником...(пробные кстати сдал)... но там именно SQL и работа с данными а не костыли

т.е. только бейсик и тд?
...
Рейтинг: 0 / 0
01.02.2019, 21:39
    #39768531
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
или проще
какие методы у DOMDocument или XMLHTTP есть для прекодирования чтобы я мог их вызвать чеhез sp_.....sql

я 3 день в непоняткас етим кодированием в рамках sql
...
Рейтинг: 0 / 0
01.02.2019, 21:59
    #39768540
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
и кстати CLR (он же промежуточный код по русски) это не OLE.... совсем не оле... это разные вещи принципмцмально
...
Рейтинг: 0 / 0
01.02.2019, 22:15
    #39768542
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto,

1) скачать котировки в формате XML с сайта РосБанка на дату пример
http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002
2) СОХРАНИТЬ(! нафига) в файл ляляля +дата.XML НО в формате UNF8 что средствами чистым SQL до сервера 2019 не реально
3) записат данные в таблицу формата ( тут опять смешно... нафига ид если дата и так уникальна)


вот здесь вполне конкретное описание у вас что нужно сделать, зачем вы привязались к процедурам ole автоматизации?

CLR то понятно но
ОЛЕ то внешка. но я пишу на ДЕЛФИ и как я ее в .NET встрою... корячить на бейсике или С#? которых лет 10 не видел ?
или я что0то фундаментально не понимаю.... иду сдавать MSCA а чую себя школьником...(пробные кстати сдал)... но там именно SQL и работа с данными а не костыли

т.е. только бейсик и тд?

вот из этого вашего потока мыслей вообще ничего не понятно. дельфи то тут причем?


ну если хотите костылей с ole то : скачивайте ваш файлик как у вас в скрипте, после сохранения, создавайте еще один объект ole-автоматизации ADODB.Stream устанавливаете потоку необходимую кодовую страницу, читаете ваш документ, сохраняете в выходной поток, записываете в файл.
...
Рейтинг: 0 / 0
01.02.2019, 22:26
    #39768547
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
ответ прост
1) скачать данные с ЮРЛ +
2)сохранить в фаил ляляля.лялял
2) .а просто сохранить +
2) .б сохранить файло в формате UTF8 и сменить хедар соответственно в XML(но это и руками можно) вот тут ---!
может кто знает как с момощью MSDOC мона перекодировать?
3)создать табличку +
4) засунуть строку в таблицу +

на счет Делфи.
на чем прикажете писать скрипт втсроенный если я не помнб не бейсик не C#..... писать СОМ на делфях тоже неправильно... только регестрировать замучасся
...
Рейтинг: 0 / 0
01.02.2019, 22:31
    #39768550
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
авторну если хотите костылей с ole то : скачивайте ваш файлик как у вас в скрипте, после сохранения, создавайте еще один объект ole-автоматизации ADODB.Stream устанавливаете потоку необходимую кодовую страницу, читаете ваш документ, сохраняете в выходной поток, записываете в файл.

щас попробую спс
вот что и искалось если выгорит
...
Рейтинг: 0 / 0
01.02.2019, 22:42
    #39768552
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto,

для этого и придумали Integration Services. Качайте (C# скриптом, примеров тысячи), преобразуйте, сливайте-разливайте, выгружайте, форматируйте-конвертируйте. Можете загрузку на другом сервере запускать и даже без SQL.
...
Рейтинг: 0 / 0
02.02.2019, 06:36
    #39768606
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto2) СОХРАНИТЬ(! нафига) в файл ляляля +дата.XML НО в формате UNF8 что средствами чистым SQL до сервера 2019 не реально

помогите советом плиз)


Головой работать надо. Все эти кодировки - сущий пустяк.

Замутить обратное преобразование - не сложнее.

Код: 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.
-- Description:	Преобразование utf8 в utf16 (nchar)
-- =============================================
/* 
declare @b as varbinary(max) = 0xD09CD0BED180D0B520D0A2D180D18DD0B2D0B5D0BB2E20D094D09ED09AD0A3D09CD095D09DD0A2D0AB20D094D09BD0AF20D09AD09BD098D095D09DD0A2D09020D0BFD0BE20D182D183D180D1832054523830393230303034;
select * from dbo.[utf8-to-utf16](@b)
*/
ALTER FUNCTION [dbo].[utf8-to-utf16]( @utf8 varbinary(max) )
RETURNS TABLE 
AS
RETURN 
(
with b as ( select b = substring(@utf8, n, 1), n from dbo.N where n between 1 and len(@utf8) )
   , bn as ( select b, n from b where b&128 = 0 or b&224 = 192 or b&240 = 224 or b&248 = 240 )
   , chs as ( select b = case  
                            when b&128 = 0   then      b 
                            when b&224 = 192 then     (b&31) * 64 | ( substring(@utf8, n+1, 1) & 63 ) 
                            when b&240 = 224 then   ( (b&15) * 64 | ( substring(@utf8, n+1, 1) & 63 ) ) * 64 | ( substring(@utf8, n+2, 1) & 63 ) 
                            else                  ( ( (b&07) * 64 | ( substring(@utf8, n+1, 1) & 63 ) ) * 64 | ( substring(@utf8, n+2, 1) & 63 ) ) * 64 | ( substring(@utf8, n+3, 1) & 63 ) 
                         end
                   , n
               from bn
           )
    select utf16 = ( select nchar(b) from chs order by n asc for xml path(''), type ).value('.', 'nvarchar(max)')
)
...
Рейтинг: 0 / 0
02.02.2019, 07:37
    #39768608
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
Не удержался... замутил

Код: 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.
/*
select * from [dbo].[utf16-to-utf8]( N'abcабв' )

declare @b as varbinary(max);
select @b = utf8 from [dbo].[utf16-to-utf8]( N'abcабв' )
select * from dbo.[utf8-to-utf16](@b)
*/
alter FUNCTION [dbo].[utf16-to-utf8]( @utf16 nvarchar(max) )
RETURNS TABLE 
AS
RETURN 
(
with t as ( select n = 0, b = cast('' as varbinary(max)), c = unicode( substring(@utf16, 1, 1) ) 
            union all
            select n = n + 1
                 , b = b + case when c < 0x80     then cast(c as varbinary(1))
                                when c < 0x800    then cast(((c * 4) & 0xFF00) | (c & 0x3F) | 0xC080 as varbinary(2)) 
                                when c < 0x10000  then cast(((c * 0x10) & 0xFF0000) | ((c * 4) & 0x3F00) | (c & 0x3F) | 0xe08080 as varbinary(3))
                                else                   cast(((c * 0x40) & 0xFF000000) | ((c * 0x10) & 0x3F0000) | ((c * 4) & 0x3F00) | (c & 0x3F) | 0xf0808080 as varbinary(4)) 
                           end
                 , c = unicode( substring(@utf16, n + 2, 1) ) 
              from t where n < len(@utf16)
          )
    select top(1) utf8 = b from t order by n desc
)
...
Рейтинг: 0 / 0
02.02.2019, 07:59
    #39768609
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanittoответ прост
1) скачать данные с ЮРЛ +
2)сохранить в фаил ляляля.лялял
2) .а просто сохранить +
2) .б сохранить файло в формате UTF8 и сменить хедар соответственно в XML(но это и руками можно) вот тут ---!
может кто знает как с момощью MSDOC мона перекодировать?
3)создать табличку +
4) засунуть строку в таблицу +

на счет Делфи.
на чем прикажете писать скрипт втсроенный если я не помнб не бейсик не C#..... писать СОМ на делфях тоже неправильно... только регестрировать замучассяТак напишите прогу на дельфи, и вызовите её из сиквела (раз уж обязательно вызывать из процедуры, как вы говорите). Зачем вам OLE, непонятно.
Или напишите пакет в SSIS, вызовите его из сиквела.
Или используйте PowerShell
Или вот даже на сиквеле можно преобразовать, как вам aleks222 написал.

В общем, всё, что угодно, кроме OLE.
...
Рейтинг: 0 / 0
02.02.2019, 17:17
    #39768712
S_Cher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto,
На делфи наверное быстрее все таки...
вот мой вариант, замороченнее.
1. wget - ом качаешь файл по ссылке.
2. далее первая или вторая ссылка в яндексе по тексту "cmd поменять кодировку txt"
3. стандартными средствам скуля открываешь xml

возможно wget умеет менять кодировку, параметров у него куча.
...
Рейтинг: 0 / 0
02.02.2019, 21:26
    #39768761
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
S_Cherpahanitto,
На делфи наверное быстрее все таки...
вот мой вариант, замороченнее.
1. wget - ом качаешь файл по ссылке.
2. далее первая или вторая ссылка в яндексе по тексту "cmd поменять кодировку txt"
3. стандартными средствам скуля открываешь xml

возможно wget умеет менять кодировку, параметров у него куча.

вот это высший пилотаж.... до меня даже мысли такой не дошло)) супер так попытаюсь дополнительно сделать)) пусть начальство усохнет...

не реально я опух от такой идеи) даже в мыслях небыло
...
Рейтинг: 0 / 0
02.02.2019, 22:20
    #39768777
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
задача ешилась так.. но варик с перекодировкой вручную полюбому начальству впиндюрю спс)
Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
DECLARE   @obj int, @obj1 int, @obj2 int  
				, @hr int
				, @loadhr int =0
				, @src varchar(255)
				, @desc varchar(255)
				,	@url varchar(255) = 
					'http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002'
				, @r nvarchar(1000)  
				, @xml XML
				, @FilePath nvarchar(1024) = 'c:/lll.xml';
				
-- создаем ОЛЕ				
EXEC @hr = sp_OACreate 'MSXML2.DOMDocument', @obj OUT;  

-- параметры койкакие
EXEC @hr = sp_OASetProperty @obj,'async', False
-- грузим
EXEC @hr = sp_OAMethod @obj,'load', @loadhr OUTPUT, @url

-- проверка на "загруженность"
IF @loadhr <> 1  
begin
  RAISERROR ('что-то пошло не так с загрузкой',16,1);
  EXEC @hr = sp_OADestroy  @obj;  
  return;
end;

-- сохраняем
 exec @hr = sp_OAMethod @obj, 'save', null, @FilePath

-- убиваем
EXEC @hr = sp_OADestroy @obj;  

--кодировка
EXEC @hr = sp_OACreate' Adodb.Stream', @obj OUT;
EXEC @hr = sp_OASetProperty @obj,'charset', 'Windows-1251' 
EXEC @hr = sp_OAMethod @obj,'load', null,  @FilePath
 
EXEC @hr = sp_OASetProperty @obj,'Position', 0
EXEC @hr = sp_OASetProperty @obj,'charset', 'UTF-8'
EXEC @hr = sp_OAMethod @obj,'save', null,  @FilePath

-- убиваем
EXEC @hr = sp_OADestroy @obj;  
...
Рейтинг: 0 / 0
03.02.2019, 01:54
    #39768811
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
pahanitto,

жесть, я потом приходит обиженный пацанчик и при помощи sp_OACreate делает вам format c:
...
Рейтинг: 0 / 0
16.02.2019, 13:12
    #39774874
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
Владислав Колосов,

правильно написали выше это тестовое задание и тут я заткнулся в этом месте. ну не пишу я цлрки.. моя стеля читать планы запросов или уж клиент... ну раз такая задачка...
...
Рейтинг: 0 / 0
16.02.2019, 13:16
    #39774875
pahanitto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная задача... странный вопрос.... задача с ... XML MSSQL файловая
Владислав Колосов,
и да.... чтоб етого небыло от слова никада.... скл с клиента низя встроенным позволять вставлять... или динамическим
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная задача... странный вопрос.... задача с ... XML MSSQL файловая / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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