请教新增记录的问题(100分)

  • 主题发起人 主题发起人 hanxcgg
  • 开始时间 开始时间
H

hanxcgg

Unregistered / Unconfirmed
GUEST, unregistred user!
我用DBEdit作为输入记录值,DBGrid来显示记录。他们的DataSourc都指向DataSourc1,
增加按钮为:
Query1.Append;
保存按钮为:
Case MessageDlg('是否确定保存此条记录?',mtConfirmation,[mbYes,mbNo,mbCancel],0) of
mrYES :begin
NORMALMODE;
with Query1 do
begin
try
if (FORMMODE = 'INS' ) then
Post;

Database1.StartTransaction;
ApplyUpdates; {try to write the updates to the database};
CommitUpdates; {on success, clear the cache}
Database1.Commit; {on success, commit the changes}
except
Database1.Rollback; {on failure, undo the changes};
CANCELUpdates;
showmessage('存盘失败!');
raise; {raise the exception to prevent a call to CommitUpdates!}
end;

end;
end;
mrNO :begin
NORMALMODE;
Query1.Cancel;
end;
END;
在新增后DBGrid却没有把新增的记录显示出来?
我用的是D5+server sql 7.0+odbc
 
刷新一下:dbgrid1.refresh;
 
QUERY1.REFRESH
 
同意,刷新一下,
 
不行,我试了一下用snjat的方法,刷新QUERY1,程序就停在哪里不动了
关于DBGrid1.refresh,我早就试过了,跟不用DBGrid1.refresh结果一样。
 
D5的数据库提交有问题,post往往没有真正提交数据添加或修改。
这样:
在query1.post;后添加一句query1.Database.Commit;
然后再刷新query1,试一下
 
to desertsmoke
没有用,在post后加query1.Database.Commit;
还是一样。只要一刷新Query1.refresh就出错。
错误信息为:
Table does not support this operation because it is not uniquely indexed.
我想,是不是PACK方面的问题,我去下个PACK1,和PACK2试试。
 
那你可以重新打开(open)一下,不要刷新(refresh),速度应该相差不大
 
to desertsmoke
我也知道重新open一下没有问题!我主要是想知道为什么会出现这个问题?这个问题
出在哪儿? 虽然解决了这个问题,但我不清楚为什么会出现这个问题? 倒底是什么
原因?
不过,还是要谢谢各位的帮忙,特别是desertsmoke。
 
如没有其它人回答,我就给分了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
540
import
I
后退
顶部