【问题标题】:OpenAsClone function causing error in Delphi XE4OpenAsClone 函数在 Delphi XE4 中导致错误
【发布时间】:2013-09-26 14:34:02
【问题描述】:

我的 Delphi XE4 应用程序中有 2 个数据集,如下所示:

object dsDestination: TpFIBDataSet

    object Field1: TFIBStringField
      FieldName = 'MYSTRING'
      Size = 1
      Transliterate = False
    ene

    object Field2: TFIBIntegerField
      FieldName = 'MYINT'
    end

  end

object dsSource: TpFIBDataSet

    object dsSourceMYSTRING: TFIBStringField
      FieldName = 'MYSTRING'
      Size = 1
      Transliterate = False
    end

    object dsSourceMYINT: TFIBIntegerField
      FieldName = 'MYINT'
    end

  end

当我尝试以下语句时:

dsSource.Open;
dsDestination.OpenAsClone(dsSource);

最后一行出现以下错误

dsDestination: Field MYSTRING not found

在 Delphi 7 中一切正常。我的 Delphi 7 应用程序使用的是 Firebird 2.5.1,而 Delphi XE4 使用的是 2.5.2。我正在使用 FIBPlus 7.5。

【问题讨论】:

  • 什么是TpFIBDataSet?我在标准 VCL 组件或任何地方的文档中都没有看到它,也无法在文档中找到 OpenAsClone
  • @KenWhite - 我使用的是 Firebird 数据库和 FIBPlus,而不是 dbexpress。 TpFIBDataSet 类似于 dbexpress 中的 TSQLDataSet。 OpenAsClone 函数在 firebird 的 FIBDataSet.pas 文件中定义。
  • 那么你应该edit你的问题提到你正在使用FIBPlus,这样人们在阅读它时就知道了。 :-)(它有助于检查并查看它是否也有标签;我已将其添加到您的问题中。)

标签: delphi delphi-7 delphi-xe4 fibplus


【解决方案1】:

我找到了错误的原因:

当我看到 dsDestination 数据集的字段编辑器时,它充满了 dsSource 的字段。我刚刚从dsDestination的字段编辑器中删除了所有字段,构建并编译了项目,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2014-05-12
    • 2013-09-12
    • 2013-05-09
    • 1970-01-01
    • 2010-12-15
    • 2013-11-04
    相关资源
    最近更新 更多