Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
JavaStudent Member Откуда: Сообщений: 102 |
Не могу решить вопрос получения длинных строк в хранимке (XML). BULK не устраивает. Не дают доступ к папкам сети. Я не могу объяснить, какой мне нужен доступ со стороны сервера к папке. Нашел, что клиент может отсылать ADODB.Stream, но что должно быть на стороне SQL сервера? Чтобы из ADODB.Stream в хранимке получить XML ? Какие есть еще варианты? |
21 авг 18, 11:43 [21649195] Ответить | Цитировать Сообщить модератору |
ЛиП Member Откуда: Сообщений: 348 |
SSIS |
21 авг 18, 11:59 [21649236] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
21 авг 18, 11:59 [21649237] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 940 |
ТС, постарайся описать не только конкретно возникшую проблему, но и задачу в целом, которую ты пытаешься решить, какие технологии уже используются,...
|
|||
21 авг 18, 12:04 [21649248] Ответить | Цитировать Сообщить модератору |
JavaStudent Member Откуда: Сообщений: 102 |
C клиента вызываю хранимку с входным параметром XML строка. Все работает, но если файлик XML большой, то не работает. Я как понял, что я могу послать серверу файлик на вход. Чтобы сервер получил в хранимке в итоге XML. Через BULK работает, т.е. кушает большие файлики, но не хочется писать файл в папку на сервере. |
21 авг 18, 12:50 [21649326] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
21 авг 18, 12:56 [21649333] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
invm, ну может "XML большой" у него больше 2ГБ |
21 авг 18, 12:58 [21649334] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
21 авг 18, 13:03 [21649346] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1244 |
1. ADODB.Stream для хранимки бесполезен. 2. На другой стороне для ADODB.Stream должно быть ПОЛЕ таблицы в открытом Recordset-е, в вашем конкретном случае поле типа (n)varchar(max). |
||
21 авг 18, 13:04 [21649349] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1244 |
Ой, варианты то забыл. Вариант "для хранимки": Пилить XML клиентом на куски, кусок передавать в хранимку, в хранимке дописывать кусок в поле таблицы. |
21 авг 18, 13:06 [21649354] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
И какой размер файлика? |
||
21 авг 18, 13:43 [21649475] Ответить | Цитировать Сообщить модератору |
JavaStudent Member Откуда: Сообщений: 102 |
alexeyvg, Проблема, в том что клиент не умеет (или я не умею) слать XML на вход хранимки. Поставил задачку под другим углом. Закачать текстовый файлик (без ограничения на объем), разбираюсь как, потом его в строку XML. Пока разбираюсь с клиентом. |
22 авг 18, 09:56 [21650309] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Со стороны сиквела это сделать намного сложнее, а уж если файл лежит на компе клиента, то намного сложнее, так что проще научиться делать эти вещи, которые, вообще говоря, обязательно знать программисту клиента. Или, если файл действительно большой (про размер вы не говорите), то прислушайтесь к советам про SSIS и BCP |
||
22 авг 18, 11:01 [21650424] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1244 |
Откроем неофиту страшную тайну: XML = текстовая строка. |
||
22 авг 18, 13:24 [21650692] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Но можно обойтись и строкой. Может, ТС этого не знал? |
||||
22 авг 18, 13:30 [21650709] Ответить | Цитировать Сообщить модератору |
энди Member Откуда: Киров, Россия Сообщений: 1203 |
Далеко не всегда, в том же дельфи обращение к этим полям идет разное, asString и asXML, а заменить одно другим нельзя. Это касается библиотеки SDAC от деварта. |
||||
22 авг 18, 14:17 [21650772] Ответить | Цитировать Сообщить модератору |
JavaStudent Member Откуда: Сообщений: 102 |
Тогда вопрос решил перешел на ADO.Connection - строка 8000 символов, если файлик большой, то писал в общую папку на сервер, а оттуда уже забирал. Если не очень, то резал на три куска. В ХП если приходил путь, брал файлик по пути или разбирал сразу строку. |
28 мар 19, 18:33 [21846506] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1244 |
}{реновый ты студент. https://docs.microsoft.com/ru-ru/sql/ado/reference/ado-api/appendchunk-and-getchunk-methods-example-vb?view=sql-server-2017 |
||
30 мар 19, 13:45 [21847782] Ответить | Цитировать Сообщить модератору |
JavaStudent Member Откуда: Сообщений: 102 |
aleks222, спасибо. AppendChunk и GetChunk - буду знать. В следующем проекте попробуем. |
27 май 19, 12:03 [21894602] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |