When BLOB column is used, stored data is always sent to the client. Is it possible to avoid this situation and wait until user’s decision to download it?
- Define the column with blob data as ExcludeFromAllFields=True in order not to send the column unless it is explicitly defined on data structure level
- In the data structure which serves data for screen containing BLOB column add explicitly the BLOB field, and define it with IsWriteOnly=True so that the column is not sent, but is just for writing (uploading)
- Open screen section containing blob column and click on blob control widget controlling your BLOB column. In property grid of the blob control fill-in the property BlobLookup with a lookup that returns as a ValueDisplayMember the BLOB column and value is get by the primary key of an entity in which your BLOB column resides (You have to create such a lookup first
)
So the data of your blob are retrieved on-demand by the lookup you have defined in your blob control widget.
Maybe I will add screenshots in the future too.
Hi Vaclav, will your add some screenshots? Thanks in advance.
On the first picture you can see a blob entity field (Blob) with ExcludeFromallFields and DefaultLookup set within RentalObjectAttachment entity.
On the second picture you can see a data structure with RentalObjectAttachment entity and blob column explicitely specified with WriteOnly set to true.
On the third picture you can see a screen section for RentalObjectAttachment entity with a detail view of blob control property with BlobLookup set.
On the fourth picture you can see the lookup returning blob data as a value. The lookup can be easily created by right-click on RentalObjectAttachment entity and selecting “Actions” → “Create Lookup…” and then select blob field as a “Display Field”.