小弟有一个问题:(现用ACCESS数据库),如何返回新增记录状态?????
详细:窗体上有一个DBGRID控件,在新增记录后。DBGRID控件处理插入状态,
如要移动记录则不可以,又返回新增状态。(不设其ENDAND属性),就是总是保持在插入
状态(未成功保存数据之前).
详细:窗体上有一个DBGRID控件,在新增记录后。DBGRID控件处理插入状态,
如要移动记录则不可以,又返回新增状态。(不设其ENDAND属性),就是总是保持在插入
状态(未成功保存数据之前).
如果你想在DBGrid中只显示新增记录的话可以用ADO控件是可以实现的,在李维的关于ADO/COM+/MTS的书上有,自己看吧,
如果要保存用户的话,如果保存不成功时(如出现数据重复等),则DBGRID继续返回
新增状态。
begin
if DataSet.State=dsInsert then
if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
MB_DEFBUTTON1) then
try
DataSet.Post;
except
DataSet.Abort;
end
else DataSet.Cancel;
end;
数据集的On
if DataSet.State=dsInsert then
if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
MB_DEFBUTTON1) then
begin
try
DataSet.Post;
except
DataSet.Abort;
end;
end
else DataSet.Cancel;
end;
上面的代码漏了一个begin end;
begin
if DataSet.State=dsInsert then
if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
MB_DEFBUTTON1) then
begin
try
DataSet.Post;
except
Abort;
end;
end
else DataSet.Cancel;
end;
if DataSet.State=dsInsert then
if Application.MessageBox('是否保存记录', PChar(Application.Title), MB_ICONQUESTION or MB_YESNOCANCEL or
MB_DEFBUTTON1) then
begin
try
DataSet.Post;
except
DataSet.Abort;
end;
end
else DataSet.Cancel;
end;
在数据集的AfterScroll下写相关的东东不就行了!
还有一小问题, 调用ABORT后, 如何返回初始状态。