每当ADO(DBgo)将被推迟或者有人想要将基于ADO-Windows的应用程序带到UNIX世界而不重写应用程序时,单元单元Data.Win.ADODB中给出的ADO类的转换< /强>;以新的相应ZEOS为基础的分类可能会有所帮助。 对于TADOConnection,在此过程中映射到TZConnection是显而易见的,对于TADOTable,TADOQuery也是如此......
对于尚未存在的类启动此作业,现在需要转换此代码是使用TADOBlobStream类。如上所述,我想创建一个TZEOSBLobStream类而不是它来最小化代码重构工作
在ZEOS中创建兼容类的最佳方法是什么?以及如何考虑ADO单元中给出的其他类,如
TADOCommand = class; TCustomADODataSet = class; TADODataSet = 类; TParameters = class; .....
TADOCommand = class;
TCustomADODataSet = class;
TADODataSet = class;
TParameters = class;
答案 0 :(得分:0)
您不应该使用特定的BLOB流实现,也不应该实现自己的BLOB流。这就是图书馆随附的内容。您应该使用公共TDataSet类提供的抽象层接口。它有CreateBlobStream方法,它将特定库BLOB流类实现的实例作为抽象TStream类返回到接口。
在大多数情况下,只需使用此返回的TStream实例即可。使用BLOB流是非常常见的方式,独立于使用的库。例如,在像这样的代码中, MyDataSet 可以是ADO,ZEOS或理论上任何正确实现的数据集对象:
var
Stream: TStream;
begin
Stream := MyDataSet.CreateBlobStream(MyDataSet.FieldByName('MyBlob'), bmReadWrite);
try
{ ← read of write from or to the Stream here }
finally
Stream.Free;
end;
end;
因此,即使在您的情况下这可能很困难,我强烈建议您重构代码以尽可能使用TDataSet类的抽象层。