关于数据库字段的自动更新控制(50分)

  • 主题发起人 主题发起人 zsmd
  • 开始时间 开始时间
Z

zsmd

Unregistered / Unconfirmed
GUEST, unregistred user!
各位好,我有两个小问题。
1.我做了一个小数据库,其中一个form上面有添加、删除、修改及dbnagivator等,
用dbedit和dbcombobox控制字段的值。大家知道这些字段是自动更新的,就是说比如我
随便更改了一个记录,然后按了前一条记录和后一条记录,这值就无声无息进去了。当然
按了添加也一样,我想让程序自动监视,在发现更改我又没按修改按纽的情况下,跳出一
个对话框,按了确定后,保存记录,按了NO后不作修改,请问该怎么做?
2.我发现dbnagivator的增加是append类型的,按了之后在最后一条记录后增加,怎样用上
insert类型的呢?我想在任意一条记录后添加数据。
 
那你不如自己做几个按纽代替dbnagivator实现前进.后退等功能.
在前进后退时检测dataset.state为何值dsbrowse or dsedit.然后弹出询问.
至于在当前位置添加.可以在添加按纽检测数据库指针位置.最后时append
否则insert
 
对于第一个问题,你可以把AutoEdit属性设为False,再放一个按钮(修改纪录),按下以后
再修改纪录,这就不用怕改了纪录自己不知道了,另外,有个控件(好像是Tbde*)可以实现
缓存机制,他能把你修改了的纪录列出来.让你确认以后才修改纪录.
对于第二个问题,你可以自己做一个插入按钮,再浏览时用insert函数就可以实现了.

 
1,使用将DataSet控件的CachedUpdates属性设为True呀
在一个按钮中添加ApplyUpdate

2,
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
if Button = nbInsert then
Table1.Insert ;
end;
纪录将添加到当前纪录的后一条.
 
按照精灵的做法,解决了第一个问题,可带来另一个问题,按修改按钮后出现提示:“data
set not in edit or insert mode。”为什么。我的语句是这么写的。
procedure TForm2.Button1Click(Sender: TObject);
begin
table1.edit;
table1.post;
end;

在此之前随意修改了一个Dbedit的字段值。
 
procedure TForm2.Button1Click(Sender: TObject);
begin
table1.edit;
end;
修改一个数据,然
procedure TForm2.Button2Click(Sender: TObject);
begin
table1.post;
end;

 
测试成功
 
多人接受答案了。
 
后退
顶部