zoukankan      html  css  js  c++  java
  • 在Dll中使用 TFDQuery 的 LoadFromStream 方法注意问题

    今天又遇到一怪事,  FDQuery 在服务器 savestream 传回了客户端。 客户端接收后 loadfromstream 接收都正常。  但当我把客户端封装成 dll 时,loadfromstream 就会报错:  Invalid class typecast .

     
    {-------------------------------------------------------------------------------}
    procedure TFDStorage.Open(AResOpts: TObject; AEncoder: TObject;
      const AFileName: String; AStream: TStream; AMode: TFDStorageMode);
    begin
      FResOpts := AResOpts as TFDBottomResourceOptions;
      FEncoder := AEncoder as TFDEncoder;
      ASSERT((AStream <> nil) or (AFileName <> '') or
             (FResOpts <> nil) and (FResOpts.PersistentFileName <> ''));
      FMode := AMode;
    .....
    ....
    跟踪后发现停在这个转换上(红字)
    unit FireDAC.Stan.Storage;  这个单元
     
    折腾了半天,最后发现, 问题出在从外界传入的 TFDQuery 实例(即使用TFDMemTable也是一样),必须在dll内部create,才能正常使用, 而create则必须引用单元 FireDAC.dApt
    哎,这种搞得太隐蔽了
  • 相关阅读:
    道砟说明
    方案设计图
    红外对摄报价
    荣昌县公安局监控设计方案
    安盈楼宇对讲系统
    高速公路方案一
    高速公路方案一
    无线智能报警暨家电控制
    百安居监控设计方案
    家庭防盗报警系统
  • 原文地址:https://www.cnblogs.com/zhenfei/p/4323487.html
Copyright © 2011-2022 走看看