翻譯|使用教程|編輯:況魚杰|2021-01-13 13:27:16.327|閱讀 173 次
概述:二進制對象(BLOB)在數據庫中管理很麻煩。在之前的文章中,我們描述了一個MapForce數據映射,該映射將二進制對象插入具有生成的元數據的數據庫中,以便以后標識BLOB。 數據映射二進制對象的伴隨挑戰是提取二進制數據并將其保存為忠實于原始格式的可理解形式。讓我們看看這是怎么做的。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Altova MapForce是屢獲殊榮的圖形數據映射工具,可進行任意轉換和集成,其功能包括輕松地將二進制對象與所有流行的關系數據庫進行數據映射。可以映射諸如圖像,PDF文件,視頻文件或任何其他二進制數據的數據。
內置的MapForce函數write-binary-file從數據庫中提取BLOB值并將其寫入文件。將在MapForce聯機幫助中擴展該示例, 修改后的映射使用運行時提供的參數從數據庫中提取一個或多個二進制對象。
原始帖子的用例是一個SQLite數據庫,用于跟蹤支持市場部門產品的各種二進制文件資產。二進制數據可以是徽標圖像文件,產品數據表的PDF,實際產品的屏幕截圖,照片,視頻文件等。這里的數據庫表包括產品的元數據,資產類型和每個原始文件名。
通過將數據庫拖放到新的映射中來開始數據映射二進制對象以進行提取。選擇一個帶有參數的SQL SELECT查詢,以根據產品和資產類型的元數據字段過濾結果,而不是為映射選擇表格。SELECT語句將返回一個或多個BLOB及其原始文件名。
接下來,在映射窗格中單擊SELECT語句以顯示用于映射的參數:
現在,每個單獨的參數和輸出都可用:
使用主“插入”菜單或工具欄圖標中的“插入輸入”,可以插入一個特殊字段以在設計期間進行測試。稍后,在自動執行期間,可以提供新的參數值以覆蓋默認值。
您可以在“輸入定義”對話框中指定一個設計時默認值,但是這里提供默認值作為字符串常量,如上所示。 默認值是可見的,而無需打開對話框,它可以更快地修改測試值。接下來將遵循MapForce幫助示例,該示例用于數據映射二進制對象,以為SELECT查詢的結果創建映射。這是完成的映射:
映射中突出顯示的write-binary-file函數將數據庫中二進制對象的內容保存到文件路徑輸入中提供的文件中。通過兩個增強改進了示例映射。 該示例為二進制對象的文件名使用了固定的字符串值,但是從數據庫映射了原始文件名。此外,提供了另一個名為userPath的輸入對象,以連接文件夾位置和文件名。
現在,可以通過單擊映射設計窗格底部的“輸出”按鈕來測試映射。MapForce使用映射中定義的參數執行查詢,并打開“輸出”窗口:
第一個輸出只是附加到write-binary-file函數的消息,單擊右箭頭圖標將打開第二個輸出。下圖是單擊“打開方式”后的顯示。 。 。 按鈕將Windows Photo Viewer分配為.png結果的應用程序。
文件路徑“ C:\ projects \ objects”是提供的輸入,“ diffdog_2021.png”是存儲在數據庫中的文件名。 照片窗口中顯示的文件名“?mf95AE.png”只是輸出預覽的隨機名稱。輸出菜單包含用于永久保存文件的選擇:
編輯參數并嘗試其他測試,接下來將對資產參數使用SQLite通配符,以匹配數據庫中的任何內容:
這次單擊“輸出”按鈕時,將檢索到多個二進制對象:
單擊所有二進制文件結果,我們看到一個數據表為PDF文件,一個屏幕截圖為.png圖像,一個徽標也為.png文件:
自動化數據映射二進制對象
為了擴展用例需求,假設我們需要允許任何團隊成員根據需要從數據庫中檢索產品資產。MapForce Server基于MapForce中設計的優化數據映射執行自動數據轉換。
可以將MapForce Server的一個副本安裝在網絡服務器上,并使多個用戶可以訪問。 然后,從MapForce輸出菜單中將數據映射另存為MapForce Server執行文件(.mfx)。將使用文件名extract-product-assets-from-DB.mfx。
然后,任何已認證的用戶都可以從命令行執行數據映射。映射中名為product,asset和userPath的輸入組件的參數是在運行時通過命令分配的。現在可以在批處理文件中創建示例命令行,用戶可以根據需要編輯和運行該命令行:
添加帶有編輯說明的注釋以列出每個參數的可能值將是一項簡單的任務。
為了實現更高的自動化生產,可以將MapForce映射部署到FlowForce Server并根據各種觸發器執行。要開始您自己的數據映射,轉換和轉換項目,請下載一個免費的試用版,包括教程,幫助和更多示例!
如果您想要了解Altova MapForce的正版授權產品,可以點擊在線客服>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn