代码之家  ›  专栏  ›  技术社区  ›  Marc Guillot

使用CreateDataset在脱机模式下激活FDQuery上的空数据集

  •  0
  • Marc Guillot  · 技术社区  · 3 年前

    我想向现有的应用程序添加一个脱机模式,为此,我需要能够在脱机模式下激活FDQuery上的空数据集。

    但当我试着打电话的时候 CreateDataset 为了激活那些空的数据集,它总是试图打开连接,但由于服务器目前不可用,连接失败。

    如果我用伪连接替换连接,CreateDataset仍然会失败,因为尽管它成功地打开了伪连接,但它会引发一个异常,即原始表没有找到,所以我猜测CreateDataset会尝试检索元数据,而不是使用其持久字段来创建空数据集。

    我试图从FDQuery中删除元数据提取。FetchOptions,但我无法使其工作(当我使用虚拟连接时,我总是得到一个未找到服务器的异常或未找到表)。实例

    DataModule.Cn.Offline;
    DataModule.Cn.FetchOptions.Items := [];
    DataModule.Cn.FetchOptions.Cache := [];
    DataModule.Cn.FetchOptions.AutoFetchAll := afDisable;
    DataModule.QCustomer.Offline;
    DataModule.QCustomer.CachedUpdates := True;
    DataModule.QCustomer.FetchOptions.Items := [];
    DataModule.QCustomer.FetchOptions.Cache := [];
    DataModule.QCustomer.FetchOptions.AutoFetchAll := afDisable;
    DataModule.QCustomer.CreateDataSet;
    

    我知道我应该在数据库联机时使用FDQuery,在数据库脱机时使用FDMemtables,但我希望能够在新的脱机模式中使用我已经拥有的数百个FDQuery和指向它们的代码。

    那么,你知道在FDQuery的连接不可用时,是否可以激活它上的空数据集吗?。

    非常感谢。

    0 回复  |  直到 3 年前