2012-01-09 101 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字段。