【发布时间】:2015-04-22 13:58:18
【问题描述】:
我正在使用带有 TFIBDataset 组件的 Delphi 2010。
我面临一个非常奇怪的问题,我有两个 TFIBDataset 组件,分别称为 DS1 和 DS2。
当我尝试在 DS1 中发布数据时,如下所示:
DS1.Post;
我收到“数据集未处于插入或编辑模式...”的错误消息。
我遇到了与我要发布其数据的数据集相关的此类错误,但这是我面临的全新问题。
即使我尝试使 DS2 处于编辑模式,如下所示:
DS2.Edit;
DS1.Post;
然后我也遇到了同样的错误。
有什么线索吗?
【问题讨论】:
-
DS1 与 DS2 有何关系,您将 DS2 置于编辑模式以在 DS1 上发布?
-
这也是我想知道的,只有当我说 DS1.Post 时问题才会出现;我得到了错误。我想知道可能是什么导致的问题。
-
您必须在调用 DS1.Post 之前将 DS1 设置为编辑或插入模式,方法是调用 DS1.Edit 或 DS1.Insert
-
您的代码设置为
DS2.Edit,但尝试发布到DS1。如果要编辑DS1然后发布更改,则需要在两个操作中使用DS1。您不能编辑一个数据集并发布到另一个数据集。目前尚不清楚您实际上要做什么,因为您发布的代码非常错误。这就像在说“我的左手脏了,但是当我洗右手时,左手却不干净”。您收到错误是因为您没有编辑和发布到同一个数据集。没有“奇怪的问题”;这是完全错误的代码,显然没有意义。 -
我已经解释了原因。您不能编辑 DS1,然后发布到 DS2。如果你想编辑 DS1,那么 'DS1.Edit; // 改变 DS1 DS1.Post;
. If you want to edit DS2, thenDS2.Edit; // 改变 DS2 DS2.Post;. You can'tDS1.Edit; DS2.邮政;`。您只能发布已置于编辑模式的相同数据集。这是普通常识。 您不能将更改发布到您尚未进入编辑模式的数据集。 我不知道如何说得更清楚,我不知道如何一遍又一遍地重复它强迫您实际阅读这些单词。
标签: delphi delphi-2010 fibplus