TADOBlobStream将此类重写为ZEOS DB组件等等

时间:2018-02-13 16:30:28

标签: delphi zeos

每当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;

1 个答案:

答案 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类的抽象层。