DBGridEh1通过DataSource1连接到ADOTable1
ADOTable连接的表有10条记录,我不希望用鼠标或键盘控制DBGridEh追加记录
因此,在DataSource里,去掉DBGridEh按下箭头自动加行功能
procedure DataSource1DataChange(Sender: TObject; Field: TField);
begin
if TDataSource(Sender).DataSet.Eof then TDataSource(Sender).DataSet.Cancel;
end;然后,当鼠标向下滚动过DBGridEh最末一行之后,
双击最末一行单元格
procedure DBGridEh1DblClick(Sender: TObject);
begin
if DBGridEh1.SelectedIndex = 0 then
with ADOTable1 do
begin
Edit;
FieldByName('name').AsString := 'testtest';//报错:dataset not in edit or insert mode
Post;
end;
end;该怎么处理?谢谢
ADOTable连接的表有10条记录,我不希望用鼠标或键盘控制DBGridEh追加记录
因此,在DataSource里,去掉DBGridEh按下箭头自动加行功能
procedure DataSource1DataChange(Sender: TObject; Field: TField);
begin
if TDataSource(Sender).DataSet.Eof then TDataSource(Sender).DataSet.Cancel;
end;然后,当鼠标向下滚动过DBGridEh最末一行之后,
双击最末一行单元格
procedure DBGridEh1DblClick(Sender: TObject);
begin
if DBGridEh1.SelectedIndex = 0 then
with ADOTable1 do
begin
Edit;
FieldByName('name').AsString := 'testtest';//报错:dataset not in edit or insert mode
Post;
end;
end;该怎么处理?谢谢
我不希望插入和追加记录,只需要在DBGridEh中编辑已有的10条记录中的某一条。刚才用了这个方法解决:if Eof then begin MoveBy(-1); MoveBy(1); end;
但不知道是否有更好的方法
插入
修改
删除
追加
procedure DataSource1DataChange(Sender: TObject; Field: TField);
begin
if TDataSource(Sender).DataSet.Eof then TDataSource(Sender).DataSet.Cancel;
end;
如果你刚好双击最后一行,那都dataset.Cancel了,当然报错了,去掉吧