那位大虾帮我,定有重谢!(200分)

  • 主题发起人 主题发起人 gwy
  • 开始时间 开始时间
G

gwy

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一台大型服务器和几台工作站,服务器上装有某种DBMS,DBMS中有一个大表格,
每隔一定的时间就会有大批的记录载入,同时,我想用这几台工作站通过DELPHI程序
----并发----访问服务器上的这个大容量数据表格,每台工作站每次只取一定数量的记录,
且每台之间不许有重复。请问,要想让这几台工作站互不冲突,又能取得自己所需要的数
据,是不是应该采取某种锁定机制,有些DBMS的书籍上说其自带锁定功能,这样的话是不
是就什么也不用管了?如果管的话,怎样管?能否提供详细的方案?是否也需要事物处理
功能?
小弟才蔬学浅,望请哪位大虾赐教,定当感激不尽!!!!!首付200分
 
》》 每台工作站每次只取一定数量的记录
如果每台工作站只是读取记录,应该不用Lock吧?!

 
不好意思,刚才情急之下忽略了一点,不光要读,还要写
 
用事务提交可以防止冲突
 
另建个表,每个机器读写前都在这个表里登记,完毕后清除,读写前查这个表就知道有没有人用
 
首先谢谢两位!
lha:我也知道得用事物处理,可是我不清楚事物处理是否具有锁定功能或互斥功能,
因为我的所有工作站上运行的是完全相同的程序,如果我的两台工作站同时运行
一样的事物并且对同一条记录进行处理,会不会出现错误结果?
wuling:我曾想过此方法,但是如果两台机器登录的过程中,甲先登录,并修改了登
录表,然后甲突然出现了意外情况(如断电),这样乙再想访问时,就被拒绝了。
当然,此情况可以用事物来处理,但又会有我在上面对lha的疑问。

我想达到的效果是,甲访问过的记录,乙不再访问,但乙应该继续访问甲所没有访问过
的记录,而不是仅仅得到一个出错提示而已。(如甲1--5,乙6-10)怎么样,够实用
吧?本人正在接受一个大工程,无奈水平有限(惭愧,也许问题很初级),所以只好有
劳各位大虾多多帮忙了,等项目完后我请客!!!
希望各路高手尽快参与,出谋献技!
 
做一个中间层可能比较好解决。
由中间层来仲裁各个客户段的请求,从逻辑上显得比较简单。

〉另建个表,每个机器读写前都在这个表里登记,完毕后清除,读写前查这
〉个表就知道有没有人用

由中间层完成这个功能,客户端的断线就可以解决了。
 
jianl的方法应该可以,
〉另建个表,每个机器读写前都在这个表里登记,完毕后清除,读写前查这
〉个表就知道有没有人用
这个表记录(如甲1--5,乙6-10),也就是说,表多一个栏位.
 
说白了吧,为了使问题明了,我省略了那么一点点的内容。我先前说的DBMS其实是一个大
型的数据仓库,单独放在一个服务器中,而所谓的那些并行“工作站”其实是一些中高挡
的服务器,这些服务器下面每个还要挂若干个PC机。我采用的是MIDAS结构,那些服务器中
装的就是中间层,而数据仓库中只放数据及一些触发器和存储过程,试问
janl:如果服务器与数据仓库短线了怎么办?
而且我看几位大虾似乎都不大提倡用锁,单我还是想问一下,用自己编的逻辑和利用DBMS中
提供的现成功能哪个更快一些??
 
我这样来解决的:
我写了个系统,有50台外围计算机来处理服务器中的SQL SERVER 7表,我使用
存储过程来做。各PC先查询到要查看或修改的记录,如果要修改,则调用存储来做,
存储过程的设计思想是:先判断该记录的标志位是否存在,如果不存在,则可以正常
处理,否则就触发一个事件。具体的过程如果感兴趣的话,欢迎讨论
 
zengr:
我太感兴趣了!!!!
真的能并发访问???能否详细一点????
我洗耳恭听,快!快!!快!!!
 
洗耳恭听。
看来标志位不能少,使用存储过程还是自定义来做取决于系统要求和个人爱好。
我受到过某种教育:“严格限制存储过程的使用”,呵呵。
zengr大虾如何处理最关心的断线问题呢?
 
真不好意思
封闭开发了一个月,捞不到网上,让各位等急了!
区区小分不成敬意,还请各位大虾笑纳。
 
因为这个问题好长时间了,当时又没有EMAIL通知,今天才看到,抱歉。

TO JIAN1:不会吧。
“严格限制存储过程的使用”?对于采用拨号连网方式的话,大量的数据处理会严重阻
碍有限的带宽。所以采用存储过程就可以大量减少这方面的问题。当然,数据库服务器也
应该稍微优良点。
TO GWY:你的问题解决没有?有什么心得?欢迎探讨。
 
后退
顶部