В базе есть справочник. У справочника есть реквизит с типом ХранилищеЗначения. Пробую получить файл сразу из SQL базы
c = New COMОбъект("ADODB.Connection");
c.Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=base;Data Source=server");
rs = New COMОбъект("ADODB.Recordset");
s = New COMОбъект("ADODB.Stream");
ИД = "0x8013001E8C0F8D1C11E17A47B9715573";
rs.Open("select * from [_Reference8365] where [_IDRRef] = " + ИД, c, 2, 3);
И получаю файл который не открывается. Adobe пишет поврежден или не поддерживается.
rs.Fields("_Fld8502").Value имеет тип COMSafeArray. Как можно еще из COMSafeArray получить ДвоичныеДанные?
COMSafeArray (COMSafeArray)
GetValue (GetValue)
Вариант синтаксиса: Список индексов
Синтаксис:
GetValue(<Индекс0>, <Индекс1>)
Параметры:
<Индекс0> (обязательный)
Тип: Число.
Значение старшего индекса.
<Индекс1> (необязательный)
Тип: Число.
Значение следующего индекса, если массив более, чем одномерный.
Описание варианта метода:
В параметрах указываются значения индексов элемента массива, начиная со старшего.
Каждый параметр определяет значение одного индекса. Параметров столько, сколько измерений в массиве. Тип всех параметров - Число.
Вариант синтаксиса: Массив индексов
Синтаксис:
GetValue(<Индексы>)
Параметры:
<Индексы> (обязательный)
Тип: Массив.
Массив индексов, начиная со старшего.
Описание варианта метода:
Все индексы перечислены в одном массиве, начиная со старшего индекса. Индексов столько, сколько измерений в массиве COMSafeArray. Тип всех элементов массива параметров - Число.
Описание:
Получает значение элемента массива по указанным индексам.
Если какой-нибудь из индексов выходит за допустимый диапазон, то никаких действий не производится и выдается сообщение "Значение индекса выходит за границы диапазона".
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший