2012-01-09 102 views
2

我們正在努力使我們的應用程序兼容Unicode,我們要遷移從2007年德爾福德爾福XE2,我們遇到了一些問題,需要有關他們德爾福XE2 - 處理BLOB字段

1)一個變化是存儲建議blob數據庫中有unicode字符串

我們在數據庫中存儲巨大的xml數據作爲blob,但在最新的delphi版本(xe2)中,blob被視爲字節數組。所以應該做什麼來存儲blob數據在數據庫中,嘗試像轉換Param.AsBlob:= WideBytesOf(xml),但似乎沒有工作。

2)我們還使用EFD系統中的HyperString進行更快的字符串操作,但現在unicode版本的庫不可用,通過將ansistring更改爲字符串來編譯代碼,並試圖修改一些彙編語言指令,成功只有少數到現在,所以任何人都可以建議任何替代方案來更快地進行字符串操作

+0

在Delphi 1.0的日子裏,HyperString更加相關。 Delphi的後續版本生成了更多優化的代碼。我建議儘可能用相同的pascal代碼替換此代碼。重寫所有的HyperStr ASM代碼來處理Unicode字符串將是一個巨大的任務,我不知道這些努力是否值得遇到麻煩。 – 2012-01-09 17:42:33

+0

感謝您的輸入,我們將考慮用Delphi庫函數替換HyperStr的調用 – ravi12 2012-01-10 14:47:04

回答

0

我在網上搜索了大約半年如何正確地將Blob放入數據庫,並且我發現了一種對我來說非常完美的溶劑也許它也會幫助你:

圖片 - TcxImage組件 MainQuery - TQuery組件 MainQueryPicture - 持有的路徑,圖像文件

MainQuery.Edit; 
    if Image.Picture.Graphic <> nil then //if there is an image loaded to the component 
    begin 
     MainQueryPicture.LoadFromFile(ImagePath); //load the image to a blob field 
    end; 
    MainQuery.Post; //post any changes to the table 

希望它可以幫助字符串變量 - 它在從通過實地編輯 的ImagePath存儲在查詢組件數據庫中的Blob字段。