|
![]() |
#1 |
Участник
|
Да.. интересная задачка. Не плохо пришлось повозиться.
Код: //Создаем поток связанный с загружаемым файлом 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, в последнюю запись. |
|