你那样做只能针对一个客户使用,
有没有考虑过多个用户同时GetNextPacket时会是什么结果呢?
有没有考虑过多个用户同时GetNextPacket时会是什么结果呢?
解决方案 »
- delphi idhttp控件读取验证码问题
- 将一个现有的Form文件转换成DLL,口已经给定义了(新手第一次做)
- 用鼠标选中DBGRIDE的某一列,怎样能得到这个列号,求求高手帮帮俺,我感激涕淋
- 关于打开窗体的问题
- 发邮件的问题(急,急,急)
- load完一个txt文件后,怎么把光标移到第一行。
- mysql+ado+delphi 原本在库中查出来的负数在DBGrid 中却永远是正的,请帮帮忙!
- Paradox数据库别名的问题
- 在delphi5中如何自动进入EXCEL
- 如何把RichEdit1中的数据复制到RichEdit2中去?用Lines来复制只有文字,颜色和格式信息怎么办?
- 小问题70分,谁解决了就送给谁
- 如何用DELPHI程序制作自己的拨号网络服务器(控制MODEM)?
服务器就不得不为维护这些信息而浪费一定的资源,无法释放
你那样做如果有第二个用户在用时,打开package,接收到的数据就是从第10条开始至
20条记录,而再返回第一个程序用GetNextpacket时取的不是第10-20条记录,而变成了
20-30记录,相信这个结果,不是客户和你都希望看到的而把光标信息放在客户端维护,那么这就是一个无状态物件,服务器就可以在发可一个响应的
packet后把组件释放掉,直到另一个消息传送过来
因为传过来的命令中带有光标位置信息,这样子的话不论哪个客户,在使用getNextpackat时
都能得到它想要的数据不好意思,废话太多了
服务端仍是无状态。也没有错误,但是有隐患。如果你有两个CDS都是指向一个DSP,如果两个CDSFecthOnDemand为False,PacketRecords为10。你运行程序,看看。你就会发现,CDS1打开了前10笔数据,而CDS2打开的是后10笔数据。同样,CDS1会从第21笔数据开始存储,不会从11笔开始。也就是说前者改变了数据表的光标位置,后者也受影响。所以李维先生那样做是为了维护每个CDS自己的数据表的光标位置。如果你使用的是一个CDS那么简单的方法就行了。