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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Далеко не всегда, в том же дельфи обращение к этим полям идет разное, asString и asXML, а заменить одно другим нельзя. Это касается библиотеки SDAC от деварта.
...
Рейтинг: 0 / 0
Получить длинную строку XML в хранимой процедуре
    #39793252
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда вопрос решил перешел на ADO.Connection - строка 8000 символов, если файлик большой, то писал в общую папку на сервер, а оттуда уже забирал. Если не очень, то резал на три куска. В ХП если приходил путь, брал файлик по пути или разбирал сразу строку.
...
Рейтинг: 0 / 0
Получить длинную строку XML в хранимой процедуре
    #39794040
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Получить длинную строку XML в хранимой процедуре
    #39818688
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222, спасибо. AppendChunk и GetChunk - буду знать. В следующем проекте попробуем.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Получить длинную строку XML в хранимой процедуре
    #40077332
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил это вопрос созданием временной таблицы на клиенте и заносил все в нее insert кусками до 32000 знаков. Потом в ХП читал уже эту таблицу.
...
Рейтинг: 0 / 0
Получить длинную строку XML в хранимой процедуре
    #40077336
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Получить длинную строку XML в хранимой процедуре
    #40077337
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27 май 19, 12:03

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


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


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