(пожалуйста, прочитайте раздел обновления ниже, я оставляю исходный вопрос для ясности)
Я вставляю много файлов в базу данных SQL Server, настроенную для файлового потока.
Я вставляю вЗацикливание файлов из папки в таблицу базы данных.
Все идет хорошо, пока я не попытаюсь вставить файл размером 600 МБ.
При вставке файла в задаче используется + 600 МБ памятиУ меня и менеджера есть ошибка.
Размер БД <1 ГБ, а общий размер документов 8 ГБ, я использую SQL Server Express R2, и в соответствии с документацией у меня могут быть проблемы только при попыткевставить документ размером более 10 ГБ (ограничение Express) - текущий размер базы данных. </p>
Может кто-нибудь сказать мне, почему у меня возникает эта ошибка?Это очень важно для меня.
ОБНОВЛЕНИЕ ДЛЯ BOUNTY :
Я предложил 150, потому что это очень важно для меня!
Кажется, этоограничение Delphi memory Manager, пытающегося вставить документ размером более 500 МБ, я не проверял точный порог, в любом случае он составляет от 500 до 600 МБ).Я использую компоненты SDAC, в частности TMSQuery (но я думаю, что то же самое можно сделать с потомком TDataset), чтобы вставить документ в таблицу с PK (ID_DOC_FILE) и полем varbinary (max) (DOCUMENT), которое я делаю:
procedure UploadBigFile;
var
sFilePath: String;
begin
sFilePath := 'D:\Test\VeryBigFile.dat';
sqlInsertDoc.ParamByName('ID_DOC_FILE').AsInteger := 1;
sqlInsertDoc.ParamByName('DOCUMENT').LoadFromFile(sFilePath, ftblob);
sqlInsertDoc.Execute;
sqlInsertDoc.Close;
end;
Команда SDAC сказала мне, что это ограничение менеджера памяти Delphi.Теперь, поскольку SDAC не поддерживает файловый поток, я не могу сделать то, что было предложено в c # в первом ответе.Является ли единственным решением сообщить Embarcadero и попросить исправить ошибку?
ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ :
Спасибо, действительно, всем, кто ответил мне.Наверняка вставка больших двоичных объектов может быть проблемой для Express Edition (из-за ограничений 1 ГБ оперативной памяти), в любом случае у меня была ошибка в редакции Enterprise, и это была ошибка «delphi», а не ошибка SQL Server.Поэтому я думаю, что ответ, который я принял, действительно затрагивает проблему, даже если у меня нет времени, чтобы проверить это сейчас.