我有一个程序,后台是SQL7,用Ttable,把cachedupdates设置为True,然后用Applyupdate,在一个用户时正常,但如果两人同时提交,两台机的程序都死掉了。急!!!!!

netfly 2000-06-07 04:06:00
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alexela 2000-06-13
  • 打赏
  • 举报
回复
你设没设数据库为独占模式?
既然单用户可以通过,那问题可能出在SERVER本身上(对数据库的各种约束设置、重复记录问题、、、、、、)。但SERVER的问题不会导致两台客户机同时死机,因为查询过程与客户机是分开的。那么很有可能问题在于你的程序。 有些什么样的错误提示?能相告吗?
halfdream 2000-06-08
  • 打赏
  • 举报
回复
我认为错并不在CatchUpdate . 它是个很有用的语法。
可能是并发操作数据库被锁住了。
你用SQLmoniter 跟踪一下产生的SQL 语句。
如果看不出问题出在哪儿, 在关键的几条贴上来。
saipm 2000-06-07
  • 打赏
  • 举报
回复
最好不要使用CatcheUpdate等来操作数据库,因为这样大大降低程序的性能,操作起来你是不是感觉程序反应慢? 并且在网络数据库操作上, 有意想不到的错误. 你可以想其它方法来实现CatchUpdate的有关功能.
kxy 2000-06-07
  • 打赏
  • 举报
回复
你是如和使用和DB有关的控件的.
程序的结构?我不清楚,怎么帮你:)
Tour_An 2000-06-07
  • 打赏
  • 举报
回复
Session 的分配问题!
netfly 2000-06-07
  • 打赏
  • 举报
回复
详细一点吧
kxy 2000-06-07
  • 打赏
  • 举报
回复
你是直接操作数据库码?有没有使用多层结构,(最好用midas)
BTW: 你要放一个TDatabase,TSeeion,把TSession的autoName := True;
netfly 2000-06-07
  • 打赏
  • 举报
回复
下面的是在onclick中的程序,FORM1上没有放什么,只是一些Edit用于输入。有一点就是,先insert一个空白记录,然后在Edit上修改,最后POST,然后执行下面的程序。
if tableppo.state=dsbrowse then exit;
if (tableppo.State=dsInsert) then
begin
dberevtimes.Field.Value :=0;
tableppo.Post;
frmcolor:=tfrmcolor.create(self);
frmcolor.setppono(dbeppoppono.text);
frmcolor.ShowModal;
end
else
begin
if tableppo.State=dsbrowse then
tableppo.Edit;
dberevtimes.Field.value:=dberevtimes.Field.value+1;
tableppo.Post;
end;
if tableppo.UpdatesPending then
begin
tableppo.ApplyUpdates;
tableppo.CommitUpdates;
end;
dbeppoppono.ReadOnly :=true;
changecolor(panel3,clblack,true);
label40.Visible:=false;
except
...

kxy 2000-06-07
  • 打赏
  • 举报
回复
你具体是怎么做的,用了什么控件, Form1上放了什么?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧