varbinary(max) захватывает и сохраняет образ OLE

Я поддерживаю приложение, имеющее серверную часть SQL Server и клиентскую часть Access. Изображение подписи хранится в столбце varbinary(max) в таблице SQL Server, таблице Users. Значение в этом поле отображается в различных отчетах Access.
Периодически в систему добавляется новый Пользователь. Мне не удалось найти способ выполнить эту задачу программно. Как бы я ни загружал изображение в поле в SQL, оно не будет отображаться в отчетах Access. Мне нужно выполнить следующие шаги, чтобы изображение загрузилось и отобразилось правильно:
1. Откройте документ.
2. Скопируйте подпись в буфер обмена.
3. Откройте Word.
4. Вставьте подпись в Word.
5. Скопируйте подпись из Word в буфер обмена.
6. Откройте Access. Откройте связанную таблицу Users.
7. Вставьте в поле OLE-подписи.
8. Обновите запись.
Подозреваю, магия заключается в копировании изображения из Word в буфер обмена, что каким-то образом создается OLE какой-то объект, который копируется в буфер обмена, а затем может быть вставлен в поле varbinary(max) через Access.
Может ли кто-нибудь пролить свет на то, как можно программно (C#, Access или?) загрузить изображение в поле varbinary(max), которое Access может отображать как изображение? Я хочу создать приложение, которое конечный пользователь сможет использовать для загрузки изображения подписи.


person John Brainerd    schedule 28.08.2014    source источник
comment
Только чтение/запись двоичного потока для сохраняемости связаны с базой данных - до тех пор, пока это выполняется успешно, проблема (или задача) лежит в другом месте. Кроме того, для SQL Server проверьте тип FILESTREAM.   -  person user2864740    schedule 28.08.2014
comment
Правильно, я могу загрузить данные в столбец таблицы. Я считаю, что проблема заключается в том, что изображение должно быть объектом OLE, независимо от того, что я могу скопировать из документа Word и вставить в поле в связанной таблице Access.   -  person John Brainerd    schedule 28.08.2014


Ответы (1)


Как отобразить изображение из Sql Сервер с Microsoft Access?

Когда поле OLE привязано к «привязанному элементу управления OLE» в форме и файл вставляется в элемент управления, файл сохраняется в двоичной оболочке OLE для доступа. Элемент управления также ожидает обертку при отображении файлов/изображений, но если файл был сохранен в таблицу с кодом, а не вставкой, то обертки там нет.

Использование несвязанных элементов управления позволяет обойти проблему, поскольку для этих элементов управления не требуется оболочка OLE.

person Ben McIntyre    schedule 02.11.2014
comment
Хм, это помощь. Тем не менее, на данный момент это довольно большое приложение с более чем 50 отчетами о доступе, использующими поле OLE и т. Д. Я думаю, что я мог бы изменить все отчеты, другие элементы управления и т. д., чтобы они были несвязанными, но... - person John Brainerd; 30.06.2018
comment
Ого, это была пауза! Не так уж сложно удалить оболочку Access, чтобы сделать данные «сырыми» блобами (если вам это нужно, на www.arrow-of-time.com есть код в Access Extension Framework — раскрытие — мой продукт). Но добавить обертку очень сложно. - person Ben McIntyre; 01.07.2018