Да.. интересная задачка. Не плохо пришлось повозиться.
Код:
//Создаем поток связанный с загружаемым файлом
FileToLoad.OPEN('C:\2.txt');
FileToLoad.CREATEINSTREAM(Instream1);
//Будем грузить в 50000 таблицу.
CLEAR(RecordRef1);
RecordRef1.OPEN(50000);
//в моем случае в данной таблице две записи, они уже существуют, и я хочу загружать файл в последнюю запись.
IF RecordRef1.FINDLAST THEN;
//В моем случае BLOB поле имеет ID = 2;
FieldRef1:=RecordRef1.FIELD(2);
//В данный момент У меня английская версия 5.0 SP1, поэтому ObjectForBLOB - это переменная типа record - Object (Объект);
//Нам важно лишь то, чтобы была объявлена переменная типа BLOB, а явно этого сделать нельзя,
//можно только используя уже существующую таблицу, например Object и её поле "BLOB Reference" ("BLOB Ссылка")
//Обманываем Navision:
ObjectForBLOB."BLOB Reference":=FieldRef1.VALUE;
//Создаем поток, куда будем грузить
ObjectForBLOB."BLOB Reference".CREATEOUTSTREAM(OutStream1);
//Копируем содержимое файла в блоб поле
COPYSTREAM(OutStream1, Instream1);
//Переобманываемся обратно
FieldRef1.VALUE:=ObjectForBLOB."BLOB Reference";
//Сохраняемся
RecordRef1.MODIFY;
FileToLoad.CLOSE;
//Все - файл загружен в запись 50000, в поле с ID = 2, в последнюю запись.