9.2.2 BLOB のダウンロード

イメージごとにダウンロード要求を送信する代わりに、Visual LANSA では BLOB をフィールドとして作業リストに入れることができます。

このように管理すると、BLOB データは Base 64 エンコーディングに変換され、JSON の一部として引き渡されます。これがクライアントに到着した時に、元のイメージに変換されます。

Visual LANSA では、このようなイメージは JavaScript のデータ・オブジェクトとして管理されます。このため LANSA での操作は簡素化されますが、大きなイメージを大量に扱う場合、メモリ使用の観点から比較的コストが高くなるため、この方法は推奨されません。ですが、この技法はサムネイルやその他小さいサイズのイメージにおいては、優れたソリューションです。

次のルーチンでは、1 度の要求で多くの BLOB イメージをクライアントに返すことができることが示されています。

 

Def_List Name(#Employees) Fields(#Empno #Surname #Givename #Address1 #Address2 #Address3 #Postcode #Phonehme #Phonebus #Deptment #Section #Salary #Startdte #Termdate #Empthm) Type(*working) Entrys(*Max)
 
SrvRoutine Name(GetEmployees) Response(*JSON)
List_Map For(*Output) List(#Employees)
 
* 全社員データ取得
Select Fields(#Employees) From_File(pslmst)
 
* 社員のサムネイル画像取得。BLOB として保存
Fetch Fields(#empthm) From_File(pslimg) With_Key(#empno)
 
Add_Entry To_List(#Employees)
 
Endselect
 
Endroutine