Delphi操作数据集的状态
在进行任何删除、编辑或插入之前,是否有方法修改我的数据集(TTAble)的状态Delphi操作数据集的状态,delphi,dataset,Delphi,Dataset,在进行任何删除、编辑或插入之前,是否有方法修改我的数据集(TTAble)的状态 我尝试使用表1.State:=dsXXX。编译器告诉我无法修改此属性。您可以这样做,但请注意,您所做的操作不会破坏TDataSet的状态模型 您需要声明正在使用的TDataSet类型的子类。例如 type TmyTTable = Class(TTable); 然后,通过将数据集强制转换为该类型,可以对其使用SetTempState和RestoreState: SaveState := Table1.State; t
我尝试使用
表1.State:=dsXXX
。编译器告诉我无法修改此属性。您可以这样做,但请注意,您所做的操作不会破坏TDataSet的状态模型
您需要声明正在使用的TDataSet类型的子类。例如
type TmyTTable = Class(TTable);
然后,通过将数据集强制转换为该类型,可以对其使用SetTempState
和RestoreState
:
SaveState := Table1.State;
try
TmyTTable(Table1).SetTempState();
// do something
finally
TmyTTable(Table1).RestoreState(SaveState);
end;
不过,您应该在DB.Pas中查看SetTempState的源代码。并极其小心地进行操作-使用
SetTempState
是自找麻烦。SetTempState在DBClient.Pas、fwiw中的多个位置使用。您可以这样做,但要小心,您所做的并不是破坏TDataSet的状态模型
您需要声明正在使用的TDataSet类型的子类。例如
type TmyTTable = Class(TTable);
然后,通过将数据集强制转换为该类型,可以对其使用SetTempState
和RestoreState
:
SaveState := Table1.State;
try
TmyTTable(Table1).SetTempState();
// do something
finally
TmyTTable(Table1).RestoreState(SaveState);
end;
不过,您应该在DB.Pas中查看SetTempState的源代码。并极其小心地进行操作-使用
SetTempState
是自找麻烦。SetTempState在DBClient.Pas、fwiw中的多个位置使用。属性State
(继承自类TDataSet
)是只读的。你不应该直接操纵它
要删除/编辑/插入记录,请使用相应的方法delete
/edit
/insert
。它们根据设计更改状态的值
大概(由于您没有提供任何关于您正在做什么或尝试过什么的信息),您请求修改状态
,因为您会收到如下错误消息
数据集未处于编辑模式
这是因为只有在通过调用Open
方法打开数据集后才能进行数据操作。属性状态(继承自类TDataSet
)是只读的。你不应该直接操纵它
要删除/编辑/插入记录,请使用相应的方法delete
/edit
/insert
。它们根据设计更改状态的值
大概(由于您没有提供任何关于您正在做什么或尝试过什么的信息),您请求修改状态
,因为您会收到如下错误消息
数据集未处于编辑模式
这是因为只有在通过调用Open
方法打开数据集后才能进行数据操作。“数据操作只能在打开数据集后进行”为True,但由于关闭的数据集可能在gui中很明显,此eoor msg可能更可能因忽略调用Edit或Insert而产生。“数据操作只能在数据集打开后进行”True,但由于关闭的数据集可能在gui中很明显,此eoor msg可能更可能因忽略调用Edit或Insert而产生。