Как преобразовать содержимое TMemoryStream в вариант? Я использую Делфи 2010.
TMemoryStream хранит содержимое файла, это может быть PDF или JPG (отсканированный документ).
Файл хранится в базе MS SQL. Когда я перехожу в режим редактирования в своей программе, я извлекаю содержимое этого файла из базы в TMemoryStream.
После редактирования карточки документа мне нужно отправить документ обратно в базу. Отсканированный файл также может быть изменен (или заменен каким-либо другим файлом). Чтобы отправить запись обратно, я использую хранимую процедуру с кучей параметров — по одному на каждое поле. Я передаю параметры хранимой процедуре как варианты.
Вот почему мне нужно преобразовать TMemoryStream в вариант.
Variant
для передачи данных в БД? Это не очень эффективно. Предполагая, что вы обернули хранимую процедуру внутри пользовательской функции, вы должны использовать фактические типы данных для каждого параметра или, по крайней мере,array of const
, чтобы вы могли сохранить информацию о типе. В случае полей больших двоичных объектов вы можете опубликовать эти данные, используяTStream
черезTDataSet.CreateBlobStream()
илиTParam.AsStream
. - person Remy Lebeau   schedule 16.01.2013