Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 http-запрос  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 27
Доброго дня всем.
Столкнулся с задачей получения данных службой sql из интернета. Грубо говоря, выполнить http-запрос, который вернет произвольные данные (у меня в первую очередь стоит задача получения png).
Решить стандартными средствами не удалось. Сделал сборку CLR. во вложении:
- библиотека, которая у меня подключена к MS SQL 2012 и вроде как работает
- исходник основного модуля этой библиотеки (C# Visual Studio Express 2013)
- код для подключения библиотеки к ядру
- пример вызова для получения фрагмента карты

К сообщению приложен файл (ClrHttpGet.zip - 3Kb) cкачать
14 мар 14, 17:54    [15726121]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 27
Конечно же буду благодарен конструктивной критике, а еще больше советам как можно сделать лучше.
14 мар 14, 17:54    [15726128]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Девиченский Василий,
Совет - не заниматься хнёй.
14 мар 14, 19:04    [15726516]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8813
Не надо ничего никуда встраивать, напишите отдельное приложение для получения данных и разместите его на отдельном сервере приложений.
17 мар 14, 11:31    [15736727]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31960
Владислав Колосов
Не надо ничего никуда встраивать, напишите отдельное приложение для получения данных и разместите его на отдельном сервере приложений.
Бывает, нужно для какой нибуть учётной системы получать курсы валют. Система со старым кодом, сервера приложений нет, ради этой мелочи делать отдельное приложение, разворачивать сервер, обучать службу поддержки будет слишком накладно.
Так что ИМХО вполне есть ниша, где можно такое использовать. Спасибо Девиченский Василий, что делится полезным кодом с сообществом.
17 мар 14, 11:42    [15736824]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8813
alexeyvg, так-то оно так, но я видел уже куда такая дорожка заводит :) Шаг за шагом серверное приложение оказывается в непомерном болоте внешних вызовов. Надо очень хорошо понимать последствия допущения. Или сразу делать правильно.
Один - два это терпит, но потом создается система и вызовы в два часа ночи
17 мар 14, 12:11    [15737104]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31960
Владислав Колосов
alexeyvg, так-то оно так, но я видел уже куда такая дорожка заводит :) Шаг за шагом серверное приложение оказывается в непомерном болоте внешних вызовов. Надо очень хорошо понимать последствия допущения. Или сразу делать правильно.
Один - два это терпит, но потом создается система и вызовы в два часа ночи
Ну да, тут я согласен, в целом для работы с интернет-источниками лучше написать отдельный сервис.
17 мар 14, 12:35    [15737372]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
CLR
Guest
Владислав Колосов
alexeyvg, так-то оно так, но я видел уже куда такая дорожка заводит :) Шаг за шагом серверное приложение оказывается в непомерном болоте внешних вызовов. Надо очень хорошо понимать последствия допущения. Или сразу делать правильно.
Один - два это терпит, но потом создается система и вызовы в два часа ночи

чем принципиально CLR с вызовом из job-а отличается от сервера приложений если полученные данные нужно складывать в БД?
17 мар 14, 12:38    [15737394]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8813
В простом случае - ничем.
17 мар 14, 16:02    [15739392]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
CLR
Guest
Владислав Колосов
В простом случае - ничем.

так нахера для этого городить сервер приложений?
17 мар 14, 17:03    [15739996]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Есть кстати и недостаток в коде, который с подходом OLE можно избежать - это хранение дополнительной копии ответа в памяти.

И почему, alexeyvg, я не люблю когда те, кто свой "...-... и в продакшин" делятся с общественностью. Хотя никак нельзя этому противостоять.
Хорошее враг лучшему.
Притом что похожего кода много. А когда есть вещи которые реально нужны сообществу, но нужно посидеть чуть поделать, так нет - это обязан кто-то другой.

А главное, что SqlBytes требует на вход Stream, а не MemoryStream - который там просто пятая нога и если бы человек воспользовался нормальным интерфейсом уровнем пониже (чтобы скуль уже принимал данные сетевого трафика, до его окончания), и добавил все необходимые параметры, выявленные в нормальном продакшине (с проектами 10+), т.е. хорошо отработаные в бою. То да - можно было бы сказать спасибо, ни ни кто бы не посмел бы пикнуть обратное.

А так часть случаев когда также не нужно отдельного сервиса, эта поделка может и не потянуть, из-за пресловутых тупых ограничений.
И кто-то уже выкладывал CLR сборку с джентльменским набором функционала, и с меньшим запашком.

Модератор: Метафору можно было и без мата подобрать


Сообщение было отредактировано: 18 мар 14, 03:10
18 мар 14, 02:57    [15742620]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 27
Mnior,

Никак не могу спорить - сборка скорее всего на уровне школьной поделки. С этой средой разработки знакомство начал совсем недавно (и откровенно говоря не нужна она мне - скорее всего углубляться не буду).

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

Ибо я столкнулся с тем, что ничего подобного найти не смог, а необходимость запроса есть. Причем не такая, как описано - а банально админские заморочки.

И по поводу того. что часто говнокод запускается в бой есть простое объяснение. Работал я в компании автотрейдинг, занимался оптимизацией запросов за разработчиками 1С и плюс DBA. 1С-ники меня достали - такие запросы, как они пишут, сложно даже понять что откуда выбирается! про индексы никогда не думают и т.д. Короче вышел на руководство - не могу за ними успевать. надо научить их писать мало-мало нормально.
Руководство пошло немного другим путем - посчитало денег.
Сколько надо потратить времени на обучение (работа на это время останавливается), и насколько после этого увеличатся сроки разработки (получалось что 1-2 дополнительных разрабов в штат брать).

А заодно испросило у меня сколько будет стоить железка, которая будет переваривать весь этот говнокод без индексов и не подлежащий оптимизации.

В чистом выхлопе получилось, что игрушка блатная окупалась менее, чем за год. Конечно же 1С-ники остались, продолжают работать в том же духе. А эта блатная железка все переваривает (хотя в последний год начала притормаживать и она :)).
Мы живем в эпоху гигабайтов и гигагерцев. Железо новое стоит гораздо меньше, чем увеличение времени на разработку. Строгие с академической точки зрения программы пишут в учебных заведениях. в реальности - именно такой бардак.

Конечно же с моей точки зрения.
P.S. Найди, пожалуйста такую сборку.
18 мар 14, 09:40    [15743060]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
"...-... и в продакшин"
Модератор: Метафору можно было и без мата подобрать
Ссори. Согласен, надо спасать интернет от детей.
Fix: "Чик-чик и в продакшн".

Девиченский Василий
по поводу того. что часто говнокод запускается в бой
Ммм. Как вы не правильно всё поняли.
Я лишь упомянул что у людей кто делает дело, (не поверите, хобби у них такое есть, да, это чисто хобби, то чем наполняется жизнь, в итоге), обкатывается все предположения, так - в фоне. Кто в курсе тот поймёт.
Девиченский Василий
есть простое объяснение. Работал я в компании автотрейдинг ...
Заезженная пластинка.
Ну, писать что это всё чушь и/или неправильно трактовано бесполезно. Даже если вы признаетесь или поймете - это не изменит ситуации, работать заставить невозможно и не имеет смысла, можно придумывать/цитировать сколько угодно отмазок. Разве что правильное не "работать заставить", а думать об общем будущем.
Девиченский Василий
Сколько надо потратить времени на обучение ... разрабов в штат брать
Вспомнил эпизод из английского фильма "Рыба мой мечты" (Salmon Fishing in the Yemen) где-то на 8й минуте:
- Так что, пробуйте.
- Мы приложим к этому все усилия. Я немедленно создам рабочие группы.
- Какие "рабочие группы"? Я сказала, не похоронить это, а сделать!
А далее даётся это всё специалисту любящее своё дело. Естественно.
.. Но опять таки, зачем вытягивать людей не желающих преодолевать своё невежество.
Девиченский Василий
Найди, пожалуйста такую сборку.
Просить всегда легко.

http://www.sqlsharp.com/ Есть такой поц.
http://www.codeplex.com/site/search?query=CLR SQL найдётся несколько полезных
Много проектов загнулись или не поддерживаются (но есть/были).
Согласен дерьма много и ничего путного, в основном поделки вашего типа. Если и было что-то путное - утонуло в них.
Кооперация застряла где-то в 80х.

Далее, Девиченский Василий, вот тут сразу видно что чел имеет намного правильное восприятие, "попробую сам разобраться" - стоит очень многого. Все три слова важны и многогранны/глубоки по смыслу.
То что вы "искали" (если реально искали) - похвально, как вариант сравнения своего варианта, и поиска в нём несовершенства, а также как подключения к общественному проекту.
Плохо что плохо искали, хотя я тоже ненавижу тупеющий гугель.

Девиченский Василий, и вообще-то я обращался к alexeyvg, на его "поощрения". Ибо бороться с говнокодом бесполезно/бессмысленно. Не ваша это вина.
Вопрос в другом, как зажечь в человеке искру творческой сути, любить делать правильные вещи.
И я по этому поводу полный пессимист, наука доказывает что гены решают всё в психологии, к сожалению.
19 мар 14, 04:52    [15750245]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 27
Mnior,

Не удалось мне воспользоваться приведенными советами по ряду причин, основная наверное - нехватка времени. Упрек типа "попробую сам разобраться" не про меня действительности объективно не соответствует. В первом же сообщении описал задачу, которая передо мной встала. Немного указал каким образом пытался ее решить (имелись ввиду, хотя и не написаны sp_OACreate, sp_OASetProperty, sp_OAMethod, sp_OADestroy). Нормально решить не удалось, т.к. не работают с бинарниками (только текстовые данные) имеют ограничение в 8000 байт.
Не указал, но есть верный признак того, что я пытался сам разобраться - вложил результат своих разборок. Причем указал, что этот результат вполне справляется с поставленной передо мной задачей. Конечно же для получения такого решения я установил VisualStudio, и почитал документацию сколько смог осилить.

Конечно же как и раньше буду всегда рад конструктивной критике. Конструктивная критика состоит из двух частей:
1. ты сделал тут и тут неправильно
2. надо вот так

если нет второго, то ничего кроме срача развести не получится
5 июн 14, 09:16    [16123877]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Девиченский Василий
Не удалось мне воспользоваться приведенными советами по ряду причин, основная наверное - нехватка времени.
Как из анекдота, Чукча не Читатель, чукча Писатель.
И смысл было тогда постить "ответ"?
Девиченский Василий
первом же сообщении описал задачу, которая передо мной встала.
А не в этом дело.
А в том что, перед тем что что-то советовать надо сначала сделать анализ имеющегося. Не сделали - фтопку. И как оказалось не зря.
Девиченский Василий
не работают с бинарниками, имеют ограничение в 8000 байт.
Что за сказки?
Девиченский Василий
есть верный признак того, что я пытался сам разобраться - вложил результат своих разборок.
И зачем?
1. Для этого есть "личный дневничёк".
2. Вам указали на конкретные ошибки. Вот и исправляйте.
Девиченский Василий
Причем указал, что этот результат вполне справляется с поставленной передо мной задачей.
Если вставить 100500 пустых циклов, оно с задачей тоже справится. И микроскопом можно гвозди забивать.
Это не аргумент.
Девиченский Василий
Конечно же как и раньше буду всегда рад конструктивной критике. Конструктивная критика состоит из двух частей:
1. ты сделал тут и тут неправильно
2. надо вот так
если нет второго, то ничего кроме срача развести не получится
А так как реально было представлено, то типа срача не будет? Фиг, всё упрётся в вашу фразу:
"Не удалось мне воспользоваться приведенными советами по ряду причин, основная наверное - нехватка времени".
5 июн 14, 16:09    [16127138]     Ответить | Цитировать Сообщить модератору
 Re: http-запрос  [new]
Девиченский Василий
Member

Откуда: Москва
Сообщений: 27
Mnior,

вот что реально зря, так это ты зря пишешь - в общем-то ничего конкретного не приводишь, сплошная демагогия.
1 авг 14, 16:03    [16388248]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить