紧急求助(100分)

  • 主题发起人 主题发起人 黄华
  • 开始时间 开始时间

黄华

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编写如下程序时出现问题:
DateBase1.Startrans;
try
Query1.Applyupdates;
Database1.commit;
except
Database1.rollback;

end;
//Query1.commitupdates;
如不加最后一句,则与Query1相连的DBGrid中增加后显示两条一样的记录(因没有将缓
存清除,加上最后一句则在DBGRID中一条没有;请问高手有没有解决的办法;


 
如果是oracle 8.0.x,请在BDE中将ORACLE的ROWSET SIZE置0
TRY IT
 
refresh,如果是query,那么close再open
 
Pipi的方法不太好吧,如果数据库有5万条记录,每一次都要refresh,不是很累人嘛?
 
你肯定是初手,教你两招,但要加分!ok
你肯定是数据库提交后没有清控缓冲区!!!
如果每次录入记录数比较多,建议你用整体事务提交,录入时先将它放入缓冲区,
最后在提交,如果数据库数据量较小,可将其全部打开,
DateBase1.Startrans;
try
Query1.Applyupdates;
Database1.commit;
except
Database1.rollback;
rasie;
end;
Query1.commitupdates;
如果每次录入记录数比较少,建议你用sql语句,录入一条插入一条,
如果数据库数据量较大,可与sql语句将其隔离缓冲区,ok!!!

jqy兄:你讲BDE中的ROWSET SIZE改为零什末意思,ROWSET SIZE指的是BDE每次
同一时间提交记录数,why became 0



加分吧!!!!
 
to dyr:
这是oracle 8.0.x的bug,必须set rowset size=0才能解决
 
你肯定是初手,教你两招,但要加分!ok
你肯定是数据库提交后没有清控缓冲区!!!
如果每次录入记录数比较多,建议你用整体事务提交,录入时先将它放入缓冲区,
最后在提交,如果数据库数据量较小,可将其全部打开,
DateBase1.Startrans;
try
Query1.Applyupdates;
Database1.commit;
except
Database1.rollback;
rasie;
end;
Query1.commitupdates;
如果每次录入记录数比较少,建议你用sql语句,录入一条插入一条,
如果数据库数据量较大,可与sql语句将其隔离缓冲区,ok!!!

jqy兄:你讲BDE中的ROWSET SIZE改为零什末意思,ROWSET SIZE指的是BDE每次
同一时间提交记录数,why became 0



加分吧!!!!
 
多人接受答案了。
 
后退
顶部