如何在 Delphi 中以 EDIT/INSERT 模式打开表格

How to Open tables in EDIT/INSERT mode in Delphi

我尝试使用以下代码在 Delphi 中打开我的表格:

for I := 0 to  Datamodule1.ComponentCount - 1 do
  if Datamodule1.Components[I] is TADOTable then
  Begin
    TADOTable(datamodule1.Components[i]).EDIT;
  End;

但是当我想 post 时,它给我一个错误,提示表格未处于 EDIT 或 INSERT 模式。我在这里做错了什么?

标准代码示例如下:

// open the table
ADOTable1.Open;  // Mode = dsBrowse
// Enter in Edit mode
ADOTable1.Edit;   //Mode = dsEdit
// Change field values
ADOTAble1.FieldByName('NOM').AsString := 'Lou';
...
// Try to save
try 
  ADOTable1.Post;
except
  // Capture the error
  // Show Message
  //...
end;

查看方法帮助:Post取消编辑、 ... TDataSet.

将此示例代码改编为您的工作代码很简单。

此致。

感谢您的反馈。我设法解决了这个问题。在我将 table 设置为编辑模式状态之前,我首先检查状态,因为在调用此过程之前我已经将 table 置于编辑状态

for I := 0 to  Datamodule1.ComponentCount - 1 do
 if Datamodule1.Components[I] is TADOTable then
  Begin
     if not (TADOTable(datamodule1.Components[i]).State in [dsEdit]) then
       TADOTable(datamodule1.Components[i]).EDIT;
  End;