不难嘛!只要处理数据集控件的BeforeInsert事件就行了!Look:
新建一个Application,加上一个Table,一个DataSource,一个DBGird,一个按钮
分别连好DBGrid->DataSource->Table->你的数据库表!
在Tabel的BeforeInsert事件中写:
procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);
begin
if ActiveControl is TDBGrid then abort;
end;
在Button的OnClick事件中写:
procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Insert;
end;
好,运行看看吧,是不是你要的效果?
DBGird可以编辑,但不会自动插入新记录,只有按下Button才行!
以上只是以Table举例,但同样可以用在Query,ADOTable,adoQuery等DataSet中,
这种方法的限制是不能直接用DBNavigator来增加记录(当然浏览是可以的!),
只能用有焦点的控制如:Button,BitBtn之类的东西来做添加按钮,我想应该
不是太大的问题!