powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сохранение файлов любых размеров в поле VARBINARY(MAX)
20 сообщений из 20, страница 1 из 1
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954685
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С клиента VFP9.0 отправляю файлы в поле VARBINARY(MAX) таблицы SQL Server 2005 - 9.00.5000.00. Вызываю ХП:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE PROCEDURE DocTmp_ins
	@FLNAME VARCHAR(80),
	@SQL_DRIVER VARCHAR(80),
	@FLBODY VARBINARY(MAX)
AS
	INSERT INTO DDOC..doc_tmp (flname, filesize, sql_driver, filebody) VALUES (@FLNAME, DATALENGTH(@FLBODY), @SQL_DRIVER, @FLBODY)


на стороне клиента, отправка файла выглядит так:
Код: 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.
LOCAL m.lcFile, lcFilename, m.lnCon, m.lcSqlDrv
SET PROCEDURE TO utils

m.lcSqlDrv = "SQL Server Native Client 11.0"
m.lcDSNLess = ;
	"Driver=" + m.lcSqlDrv + ";" + ;
	"SERVER=NT3;" + ;
	"DBMSSOCN=TCP/IP;" + ;
	"UID=AppAdmin;" + ;
	"PWD=adm;" + ;
	"DATABASE=master;" + ;
	"APP="
m.lnCon = SQLStringconnect(m.lcDSNLess)
SQLSETPROP(m.lnCon,"DispWarnings",.T.)

m.lcFile = "d:\archiv\MAT_ZVIT\articles.dbf"
CURSORSETPROP("MapBinary",.T.,0)
CREATE CURSOR CurBlob (filebody BLOB)
SELECT CurBlob
APPEND BLANK
APPEND MEMO filebody FROM (m.lcFile)

m.lcCommand = [EXEC DDOC..DocTmp_ins ] + NULLIF(m.lcFile) + [, ] + NULLIF(m.lcSqlDrv) + [, ?CurBlob.filebody]
SQLEXEC(m.lnCon, m.lcCommand)


файлы меньших размеров сохраняються нормально:

Попытка отправить файл размером 367 Мб и больше заканчивается ошибкой:

Если есть какие-то соображения по даному вопросу, буду благодарен за совет. Может и проблема и не на стороне SQL. Тогда извиняюсь за беспокойство.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954695
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shantonПопытка отправить файл размером 367 Мб и больше заканчивается ошибкойТекст ошибки надо прикладывать текстом. Никто не будет искать проксю, чтобы обойти блеклистинг вашего хостинга картинок.

shantonМожет и проблема и не на стороне SQL
С большой долей вероятности MS SQL ни при чем.
В varbinary (max) (как и в другие блобы) влезают файлы не любого размера, конечно, но до 2Гб.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954697
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка такая:
Код: sql
1.
Connectivity error:[QL Server Native Client 11.0]Поставщик TCP: Удаленный хост принудительно разорвал существующее подключение.


Интересно, почему ошибка возникает только с файлами выше определённого размера?
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954733
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустите профайлер с регистрацией ошибок и смотрите, что там фокспро делает.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954741
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Запустите профайлер с регистрацией ошибок и смотрите, что там фокспро делает.

Как оказалось, PROFILER.EXE отсутствует. Возможно при установке не было выбрано установить профайлер. Можно его как-то доустановить?
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954765
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton,

Express редакция, по-моему, не комплектуется профилировщиком. Попробуйте посмотреть в журнале сервера,если это была критическая ошибка, она может туда попасть. А до какого размера файлы передаются? Есть ли в них двоичный 0?
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954781
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton,
я сам бывший фокспрошник со стажем и до сих пор изредка заглядываю на фоксклуб

но вот SQL 2005 это конечно что-то оч. старое - по кр. мере я начинал с 2008R2 и вряд ли


зы а точно надо пихать в блобы файлы ?
как бы вроде не бест практис
(хотя конечно если сделано и работатет - то менять чревато)

тем более > 367 mb
на крайняк - dbf должны отлично жаться - ну тогда уже в zip запихнуть
заодно можно там проверить и контольную сумму
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954786
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советуют попробовать поменять network packet size (B) с 4096 на 9192.
Программа уже больше 5 лет работает и необходимости в файлах больше 100 Мб не было. Но сейчас столкнулись с проблемой когда пришлось отправить файл размером в 100 Мб. Использовался драйвер SQL Server (версия 6.01 от 21.11.2010) и в результате получили ошибку. Установили драйвер SQL Server Native Client 11.0 (от 15.08.2017), с помощью которого передача файла в 250 Мб проходит успешно, а уже файл в 367 Мб не передается. Возможно и не будет необходимости в таких объёмах файлы передавать. Но хотелось бы понять в чём проблема.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954795
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В журнале ошибка описана как:
Код: sql
1.
2.
Error: 4014, Severity: 20, State: 1.
A fatal error occurred while reading the input stream from the network. The session will be terminated.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954798
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton
Как оказалось, PROFILER.EXE отсутствует. Возможно при установке не было выбрано установить профайлер. Можно его как-то доустановить?
Уже давно профайлер идет в комплекте со студией.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954803
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия сервера SQL 2005. PROFILER.EXE на диске С и в меню студии отсутствует.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954850
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton
В журнале ошибка описана как:
Код: sql
1.
2.
Error: 4014, Severity: 20, State: 1.
A fatal error occurred while reading the input stream from the network. The session will be terminated.

https://www.mssqltips.com/sqlservertip/3538/fixing-sql-server-fatal-error-4014/
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39954945
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton,

profiler входит в состав дистрибутива SSMS начиная то ли с 15, то ли с 17 версии.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955039
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
shanton
В журнале ошибка описана как:
Код: sql
1.
2.
Error: 4014, Severity: 20, State: 1.
A fatal error occurred while reading the input stream from the network. The session will be terminated.

https://www.mssqltips.com/sqlservertip/3538/fixing-sql-server-fatal-error-4014/


я так понимаю, что эта ссылка для Windows Server 2003 R2 не подходит?
Пробовал воспользоваться данным методом, но при выполнении команд:
Код: sql
1.
netsh int ... 


отвечает что:
Код: sql
1.
The follolwing command wos not found
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955049
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может SQL Server принудительно разрывать соединение по истечении определённого времени выполнения операции?
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955051
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton,

сервер может разрывать соединение только в случае серьезной ошибки.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955053
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton
А может SQL Server принудительно разрывать соединение по истечении определённого времени выполнения операции?

это может делать клиентское приложение по таймауту.
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955059
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это обновление:
Обновление для Windows Server 2003
делает тоже самое, что и написано в ссылке:
Fixing SQL Server fatal error 4014
но только для Windows Server 2003?
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955104
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


я так понимаю, что эта ссылка для Windows Server 2003 R2 не подходит?Это просто похожий случай, описывают одну из причин ошибки.

Может, в 2003 фичи TCP/IP Chimney Offload и не было
...
Рейтинг: 0 / 0
Сохранение файлов любых размеров в поле VARBINARY(MAX)
    #39955105
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shanton
Вот это обновление:
Обновление для Windows Server 2003
делает тоже самое
О, прикольно, целое обновление для отключения :-)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сохранение файлов любых размеров в поле VARBINARY(MAX)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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