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

时间:2015-09-28 13:39:44

标签: delphi delphi-2010

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

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

但是当我想发布它时,会给我一个错误,即表格不处于EDIT或INSERT模式。我在这做错了什么?

2 个答案:

答案 0 :(得分:2)

标准代码的一个示例是这样的:

// 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;

请参阅方法帮助:发布取消修改,... TDataSet

只需将此示例代码调整为您的工作模式。

问候。

答案 1 :(得分:0)

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

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;