Поделиться через


Ограничения OLE для потоков

Разработчикам баз данных установки необходимо учитывать два ограничения на обработку потоков в реализации структурированного хранилища Win32 OLE. Эти ограничения могут косвенно влиять на функции установщика через преобразования и другие данные, которые могут храниться в базе данных в виде потока.

Существуют два соответствующих ограничения:

  • Двоичные данные хранятся с именем индекса, созданным путем объединения имени таблицы и значений первичных ключей записи с помощью разделителя точек. OLE ограничивает имена потоков 32 символами (31 + символ конца null). Установщик Windows использует алгоритм сжатия, который может расширить ограничение до 62 символов в зависимости от символа. Обратите внимание, что двухбайтовые символы считаются 2.
  • Хотя одновременно можно открыть несколько потоков, вы не сможете открыть поток во второй раз, пока не будет закрыта первая ссылка. Это означает, что нельзя выбрать один и тот же поток двоичных данных, который будет открыт одновременно в нескольких записях. Попытки считать двоичные данные из второй записи завершаются ошибкой. Кроме того, нельзя переименовать первичные ключи записи, пока открыт поток двоичных данных в этой записи.