Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить длинную строку XML в хранимой процедуре / 22 сообщений из 22, страница 1 из 1
21.08.2018, 11:43
    #39690907
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
Не могу решить вопрос получения длинных строк в хранимке (XML).
BULK не устраивает. Не дают доступ к папкам сети. Я не могу объяснить, какой мне нужен доступ со стороны сервера к папке.

Нашел, что клиент может отсылать ADODB.Stream, но что должно быть на стороне SQL сервера?
Чтобы из ADODB.Stream в хранимке получить XML ?

Какие есть еще варианты?
...
Рейтинг: 0 / 0
21.08.2018, 11:59
    #39690918
ЛиП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
SSIS
...
Рейтинг: 0 / 0
21.08.2018, 11:59
    #39690919
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentКакие есть еще варианты?Самый лучший вариант - внятно объяснить, что же вы хотите сделать.
...
Рейтинг: 0 / 0
21.08.2018, 12:04
    #39690922
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentНе могу решить вопрос получения длинных строк в хранимке (XML).
BULK не устраивает. Не дают доступ к папкам сети. Я не могу объяснить, какой мне нужен доступ со стороны сервера к папке.
Нашел, что клиент может отсылать ADODB.Stream, но что должно быть на стороне SQL сервера?
Чтобы из ADODB.Stream в хранимке получить XML ?
Какие есть еще варианты?

ТС, постарайся описать не только конкретно возникшую проблему, но и задачу в целом, которую ты пытаешься решить, какие технологии уже используются,...
иначеНе дают доступа к папкам сети? Иди к мамкам!
Какой клиент, какой стрим?
Наркоман шоле?
Вариант один - к психотерапевту!
...
Рейтинг: 0 / 0
21.08.2018, 12:50
    #39690963
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
C клиента вызываю хранимку с входным параметром XML строка. Все работает, но если файлик XML большой, то не работает.

Я как понял, что я могу послать серверу файлик на вход. Чтобы сервер получил в хранимке в итоге XML.

Через BULK работает, т.е. кушает большие файлики, но не хочется писать файл в папку на сервере.
...
Рейтинг: 0 / 0
21.08.2018, 12:56
    #39690965
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentC клиента вызываю хранимку с входным параметром XML строка.Тип параметра должен быть varchar(max), nvarchar(max) или xml.
...
Рейтинг: 0 / 0
21.08.2018, 12:58
    #39690966
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
invm,

ну может "XML большой" у него больше 2ГБ
...
Рейтинг: 0 / 0
21.08.2018, 13:03
    #39690972
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
TaPaKну может "XML большой" у него больше 2ГБТогда и BULK бы не работал.
...
Рейтинг: 0 / 0
21.08.2018, 13:04
    #39690974
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentНе могу решить вопрос получения длинных строк в хранимке (XML).
BULK не устраивает. Не дают доступ к папкам сети. Я не могу объяснить, какой мне нужен доступ со стороны сервера к папке.

Нашел, что клиент может отсылать ADODB.Stream, но что должно быть на стороне SQL сервера?
Чтобы из ADODB.Stream в хранимке получить XML ?

Какие есть еще варианты?

1. ADODB.Stream для хранимки бесполезен.
2. На другой стороне для ADODB.Stream должно быть ПОЛЕ таблицы в открытом Recordset-е, в вашем конкретном случае поле типа (n)varchar(max).
...
Рейтинг: 0 / 0
21.08.2018, 13:06
    #39690977
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
Ой, варианты то забыл.

Вариант "для хранимки":

Пилить XML клиентом на куски, кусок передавать в хранимку, в хранимке дописывать кусок в поле таблицы.
...
Рейтинг: 0 / 0
21.08.2018, 13:43
    #39691038
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentВсе работает, но если файлик XML большой, то не работает."Не работает" - это какая ошибка, какой у неё номер и текст?

И какой размер файлика?
...
Рейтинг: 0 / 0
22.08.2018, 09:56
    #39691496
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
alexeyvg, Проблема, в том что клиент не умеет (или я не умею) слать XML на вход хранимки. Поставил задачку под другим углом.
Закачать текстовый файлик (без ограничения на объем), разбираюсь как, потом его в строку XML.

Пока разбираюсь с клиентом.
...
Рейтинг: 0 / 0
22.08.2018, 11:01
    #39691565
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentalexeyvg, Проблема, в том что клиент не умеет (или я не умею) слать XML на вход хранимки. Поставил задачку под другим углом.Так задайте вопрос на форуме по используемому вами ЯП. Кстати, подойдёт и передача как параметра бинарного массива или текстовой строки.
Со стороны сиквела это сделать намного сложнее, а уж если файл лежит на компе клиента, то намного сложнее, так что проще научиться делать эти вещи, которые, вообще говоря, обязательно знать программисту клиента.
Или, если файл действительно большой (про размер вы не говорите), то прислушайтесь к советам про SSIS и BCP
...
Рейтинг: 0 / 0
22.08.2018, 13:24
    #39691722
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentalexeyvg, Проблема, в том что клиент не умеет (или я не умею) слать XML на вход хранимки. Поставил задачку под другим углом.
Закачать текстовый файлик (без ограничения на объем), разбираюсь как, потом его в строку XML.

Пока разбираюсь с клиентом.

Откроем неофиту страшную тайну: XML = текстовая строка.
...
Рейтинг: 0 / 0
22.08.2018, 13:30
    #39691730
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
aleks222JavaStudentalexeyvg, Проблема, в том что клиент не умеет (или я не умею) слать XML на вход хранимки. Поставил задачку под другим углом.
Закачать текстовый файлик (без ограничения на объем), разбираюсь как, потом его в строку XML.

Пока разбираюсь с клиентом.Откроем неофиту страшную тайну: XML = текстовая строка.Вообще в клиентских библиотеках может быть специальный тип для XML. Например, в SqlDbType из System.Data.SqlClient.SqlParameter такой присутствует.

Но можно обойтись и строкой. Может, ТС этого не знал?
...
Рейтинг: 0 / 0
22.08.2018, 14:17
    #39691764
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
aleks222JavaStudentalexeyvg, Проблема, в том что клиент не умеет (или я не умею) слать XML на вход хранимки. Поставил задачку под другим углом.
Закачать текстовый файлик (без ограничения на объем), разбираюсь как, потом его в строку XML.

Пока разбираюсь с клиентом.

Откроем неофиту страшную тайну: XML = текстовая строка.

Далеко не всегда, в том же дельфи обращение к этим полям идет разное, asString и asXML, а заменить одно другим нельзя. Это касается библиотеки SDAC от деварта.
...
Рейтинг: 0 / 0
28.03.2019, 18:33
    #39793252
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
Тогда вопрос решил перешел на ADO.Connection - строка 8000 символов, если файлик большой, то писал в общую папку на сервер, а оттуда уже забирал. Если не очень, то резал на три куска. В ХП если приходил путь, брал файлик по пути или разбирал сразу строку.
...
Рейтинг: 0 / 0
30.03.2019, 13:45
    #39794040
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudentТогда вопрос решил перешел на ADO.Connection - строка 8000 символов, если файлик большой, то писал в общую папку на сервер, а оттуда уже забирал. Если не очень, то резал на три куска. В ХП если приходил путь, брал файлик по пути или разбирал сразу строку.
}{реновый ты студент.

https://docs.microsoft.com/ru-ru/sql/ado/reference/ado-api/appendchunk-and-getchunk-methods-example-vb?view=sql-server-2017
...
Рейтинг: 0 / 0
27.05.2019, 12:03
    #39818688
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
aleks222, спасибо. AppendChunk и GetChunk - буду знать. В следующем проекте попробуем.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.06.2021, 10:18
    #40077332
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
Решил это вопрос созданием временной таблицы на клиенте и заносил все в нее insert кусками до 32000 знаков. Потом в ХП читал уже эту таблицу.
...
Рейтинг: 0 / 0
12.06.2021, 11:08
    #40077336
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
JavaStudent

Нашел, что клиент может отсылать ADODB.Stream, но что должно быть на стороне SQL сервера?

Любое поле любой таблицы типа nvarchar(max).

ADODB.AppendChunk

https://docs.microsoft.com/ru-ru/sql/ado/reference/ado-api/appendchunk-method-ado?view=sql-server-ver15
...
Рейтинг: 0 / 0
12.06.2021, 11:11
    #40077337
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить длинную строку XML в хранимой процедуре
27 май 19, 12:03

JavaStudent
Решил это вопрос созданием временной таблицы на клиенте и заносил все в нее insert кусками до 32000 знаков. Потом в ХП читал уже эту таблицу.


Упорный студент.
Два года делал - но сделал.
Слава настоящим программиздам!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить длинную строку XML в хранимой процедуре / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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