DBGrid的一个小问题(20分)

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

zyljj

Unregistered / Unconfirmed
GUEST, unregistred user!
用DBGrid修改一个数据表,当指针移到最后时,会自动添加一条记录,
我的程序中,只需要修改已有的那些记录,绝对不能因为用户误操作而加上
不需要的记录,如何实现。
 
1.将DBGRID 设为 READONLY

2或是在 DBGRID的 OnColEnter 事件(光标进入一个新的CELL)里
检测 DBGRID对应的 数据集的 state ,如果进入编辑状态dsEdit
或是 dsInsert状态就 自己处理

3.或是在DBGRID的ONKEYDOWN事件里判断,是否到了最后,如果是,修改键码
 
在BEFORE INSERT事件中使用abort;即可
 
可以把DATASOUCE 的 AUTOEDIT 属性设置为 FALSE,
好象DBGRID中的KEYDOWN事件中可以判断是否为 某键,然后判断是否是在表的最后
如果是,则取消此次操作或询问用户。
 
在BEFORE INSERT事件中
table1.cancel;
 
这好办!(算法)
Begin
Open;
First;
While cnt <= RecordCount Do
Begin
if 找到满足条件的记录 Then
Begin
RecPnt=当前记录号;
cnt=RecordCount;
End;
Inc(Cnt);
Next;
End;

If Cnt<RecordCount Then 插入一条记录
Else 添加一条记录;
close;
End;
 
这好办!(算法)
Begin
Open;
First;
While cnt <= RecordCount Do
Begin
if 找到满足条件的记录 Then
Begin
RecPnt=当前记录号;
cnt=RecordCount;
End;
Inc(Cnt);
Next;
End;

If Cnt小于RecordCount Then 插入一条记录
Else 添加一条记录;
close;
End;
修正!
 
BeforeInsert event:
begin
abort;
end;
 
接受答案了.
 
后退
顶部