![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка большого файла в базу Access [D7, Access 2000]
Arkady © (2003-04-28 08:23:00)Имеется таблица (имя t1) Access 2000 с полем (имя bin), имеющим тип «поле объекта OLE». При выполнении команды t1bin.LoadFromFile(‘c:\filename.dat’), если файл ‘c:\filename.dat’ больше 10Мб, запись в таблицу не производится. Выводится сообщение:
Out of memory.
Затем:
Unexpected variant error.
При файлах до 10 Мбайт информация записывается нормально.
Почему возникают эти ошибки?
KoluChi (2003-04-28 12:52:00) [1]function AddFile(FileName: String): Boolean;
var
ArcName: String;
BS: TADOBLOBStream;
FS: TFileStream;
begin
Result := false;
ArcName := ExtractFileName(FileName);
if DatabaseArchiveExists(ArcName) then Exit;
with Query_ADD do
begin
Close();
FS := TFileStream.Create(FileName, fmOpenRead + fmShareDenyNone);
FS.Position := 0;
Parameters.ParamByName("PARAM1").Value := ArcName;
Parameters.ParamByName("PARAM2").LoadFromStream(FS, ftBLOB)
ExecSQL();
Close();
FS.Free();
Result := true;
end;
end;
KoluChi (2003-04-28 12:49:00) [2]Попробуй, сначала прочитать файл в поток, а затем загрузить в BLOB.
Проверь сколько осталось места на диске и свободную оперативную память.
Arkady (2003-04-28 11:26:00) [3]Никто не сталкивался с подобной проблемой? Может можно воспользоваться каким-то другим методом вставки данных в поле OLE? Теоретически размер двоичных данных в данном поле ограничивается доступным дисковым пространством. Помогите, пожалуйста.
Arkady (2003-04-28 09:31:00) [4]Работа с базой данных через ADO.
t1: TADODataSet;
t1bin: TBlobField