現在地: Visual LANSA を使用したWeb アプリケーション > 9. 画像の表示 > 9.2 イメージを BLOB としてデーターベースに保存 > 9.2.2 BLOB のダウンロード

9.2.2 BLOB のダウンロード

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

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

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

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

Def_List Name(#employees) Fields(#xEmployeeIdentification #xEmployeeSurname #xEmployeeGivenNames #xEmployeeStreet #xEmployeeCity #xEmployeeState #xEmployeePostalCode #xEmployeeHomeTelephone #xEmployeeBusinessTelephone #XDepartmentCode #xEmployeeSalary #xEmployeeStartDate #xEmployeeTerminationDate #xEmployeeImageThumbnail) Type(*working) Entrys(*Max)
 
SrvRoutine Name(GetEmployees) Response(*JSON)
List_Map For(*Output) List(#Employees)
 
* 全社員データ取得
Select Fields(#employees) From_File(xEmployee)
 
* BLOB として格納された社員のサムネイル画像取得。

 

 
Fetch Fields(#xEmployeeImageThumbnail) From_File(xEmployeeImages) With_Key(#xEmployeeIdentification)
 
Add_Entry To_List(#Employees)
 
Endselect
 
Endroutine