Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi操作数据集的状态_Delphi_Dataset - Fatal编程技术网

Delphi操作数据集的状态

Delphi操作数据集的状态,delphi,dataset,Delphi,Dataset,在进行任何删除、编辑或插入之前,是否有方法修改我的数据集(TTAble)的状态 我尝试使用表1.State:=dsXXX。编译器告诉我无法修改此属性。您可以这样做,但请注意,您所做的操作不会破坏TDataSet的状态模型 您需要声明正在使用的TDataSet类型的子类。例如 type TmyTTable = Class(TTable); 然后,通过将数据集强制转换为该类型,可以对其使用SetTempState和RestoreState: SaveState := Table1.State; t

在进行任何删除、编辑或插入之前,是否有方法修改我的数据集(TTAble)的状态


我尝试使用
表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而产生。