在ADOQuery的BeforeEdit事件中写: if ADOQuery1.FieldByName('PrimaryKey').AsString = 'YourValue' then abort;
在BeforePost中写。 if Query1.FieldBYName('字段名').AsString='指定行的数据的值' then begin Query1.FieldByname('字段1').AsValue:=Query1.FieldByname('字段1').OldValue; Query1.FieldByname('字段2').AsValue:=Query1.FieldByname('字段2').OldValue; ........ end;
不好意思写错了。这样 在BeforePost中写。 if Query1.FieldBYName('字段名').AsString='指定行的数据的值' then begin Query1.FieldByname('字段1').value:=Query1.FieldByname('字段1').OldValue; Query1.FieldByname('字段2').value:=Query1.FieldByname('字段2').OldValue; ........ end;
if ADOQuery1.FieldByName('PrimaryKey').AsString = 'YourValue' then
abort;
if Query1.FieldBYName('字段名').AsString='指定行的数据的值' then
begin
Query1.FieldByname('字段1').AsValue:=Query1.FieldByname('字段1').OldValue;
Query1.FieldByname('字段2').AsValue:=Query1.FieldByname('字段2').OldValue;
........
end;
在BeforePost中写。
if Query1.FieldBYName('字段名').AsString='指定行的数据的值' then
begin
Query1.FieldByname('字段1').value:=Query1.FieldByname('字段1').OldValue;
Query1.FieldByname('字段2').value:=Query1.FieldByname('字段2').OldValue;
........
end;
dbgrid.readonly:=true
else dbgrid.readonly:=false;
dbgrid1.readonly := not 你的条件