我尝试使用以下代码在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模式。我在这做错了什么?
答案 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;