Здравствуйте, LuciferNovoros, Вы писали:
LN>Здравствуйте, blonduser, Вы писали:
B>>Как избавится от ошибки и записать файл объемом больше 300 МБ?
LN>Зачем?! Зачем в БД файлы такого размера? ИМХО, хранить их на диске, а в БД писать ссылку на файл.
В некоторых случаях так и делаем, но это не гарантирует целостность данных.
Re: SQL 2008 и ошибка 22018 при вставке большого BLOB-а.
Какой тип поля в бд?
FileStream используется?
Самый интересный кусок кода вы и не показали. Вы же используете Odbc_SQLBindParam, какого типа параметры в запросе?
Здравствуйте, BlackEric, Вы писали:
BE>Здравствуйте, blonduser, Вы писали:
BE>Какой тип поля в бд?
varbinary(max) BE>FileStream используется?
Это поле использует FileStream. BE>Самый интересный кусок кода вы и не показали. Вы же используете Odbc_SQLBindParam, какого типа параметры в запросе?
B>Как избавится от ошибки и записать файл объемом больше 300 МБ?
У тебя скорее всего тупо 32битный процесс и нет куска памяти непрерывного достаточного размера
Вариант 1. Попробуй editbin имя твего экзешника /LARGEADDRESSAWARE, блобы все равно больше 2х гб не бывают
Вариант 2. Писать блоб по кускам, через @myblob.Write(chunk, offset, chunk_len)
Здравствуйте, rm822, Вы писали:
B>>Как избавится от ошибки и записать файл объемом больше 300 МБ? R>У тебя скорее всего тупо 32битный процесс и нет куска памяти непрерывного достаточного размера R>Вариант 1. Попробуй editbin имя твего экзешника /LARGEADDRESSAWARE, блобы все равно больше 2х гб не бывают R>Вариант 2. Писать блоб по кускам, через @myblob.Write(chunk, offset, chunk_len)
R>
Дело в том что блоб передается в хранимую процедуру и уже ей обрабатывается.
У себя я его в память загружаю. Ошибка приходит от SQL сервера.
А вот SQL-сервер у меня 32-х битный, но при этом если выполнить эту же процедуру из под SSMS, то все загружается.
Попробую на 64-х разрядном сервере.
Re[3]: SQL 2008 и ошибка 22018 при вставке большого BLOB-а.
B>Дело в том что блоб передается в хранимую процедуру и уже ей обрабатывается.
Это понятно
B>У себя я его в память загружаю. Ошибка приходит от SQL сервера.
Я думаю что нет и ошибку тебе говорит провайдер, при попытках этот несчастный кусок в 300мб куда-нибудь скопировать.
Re[4]: SQL 2008 и ошибка 22018 при вставке большого BLOB-а.
Здравствуйте, rm822, Вы писали:
B>>У себя я его в память загружаю. Ошибка приходит от SQL сервера. R>Я думаю что нет и ошибку тебе говорит провайдер, при попытках этот несчастный кусок в 300мб куда-нибудь скопировать.
Так это можно трассировкой посмотреть, доходят данные до сервера или нет. Ну или логирование в процедуре поставить.
Хотя правильно писать через WriteBlob кусками
Здравствуйте, rm822, Вы писали:
B>>Как избавится от ошибки и записать файл объемом больше 300 МБ? R>У тебя скорее всего тупо 32битный процесс и нет куска памяти непрерывного достаточного размера R>Вариант 1. Попробуй editbin имя твего экзешника /LARGEADDRESSAWARE, блобы все равно больше 2х гб не бывают R>Вариант 2. Писать блоб по кускам, через @myblob.Write(chunk, offset, chunk_len)
R>