项目中遇到问题如下:
B/S结构,网络服务器端:ClientDataSet+SocketConnection,应用服务器:
DatasetProvider+Query.
现象:超过一个用户注册后,所有用户的数据集,都被最后最后注册的用户
的数据集所取代,在那些用户的浏览器中(IE6),只显示最后注册的用户从
数据库(orcal 9i)中查询到底数据。
尝试过的解决方法:
为每个用户动态建立不同的ClientDataSet,DatasetProvider,Query,不好使。
在session中寻找储存数据的方法,未果。
目前在尝试用多线程来解决,如果还不行就没招了。
有经验的给个方案,没经验的给出个主意。分数不是问题,只要我有的,
您尽管言声儿。谢谢。
B/S结构,网络服务器端:ClientDataSet+SocketConnection,应用服务器:
DatasetProvider+Query.
现象:超过一个用户注册后,所有用户的数据集,都被最后最后注册的用户
的数据集所取代,在那些用户的浏览器中(IE6),只显示最后注册的用户从
数据库(orcal 9i)中查询到底数据。
尝试过的解决方法:
为每个用户动态建立不同的ClientDataSet,DatasetProvider,Query,不好使。
在session中寻找储存数据的方法,未果。
目前在尝试用多线程来解决,如果还不行就没招了。
有经验的给个方案,没经验的给出个主意。分数不是问题,只要我有的,
您尽管言声儿。谢谢。
WebSnap 本身已经是多线程的
不行呀,我的页面中有很多代码要执行。用 caDestroy 属性建立的模块没法运行这些代码,
因为模块已经 Destroy 了,所以会 "Access Violation".
看来还得另想办法。不过还是谢谢你。
还有更简单的方法,每次请求时,都执行:
ClientDataset.Close;
ClientDataSet.CommandText:='...';
ClientDataSet.Open;
使用相同的数据。可能必须为每个用户建立单独的线程。
大侠还没来,自言自语吧。
我目前的应付办法是,每个用户在从数据库服务器取数前都把clientdataset改
为自己私有的,其它用户需要时再改回去。权宜之计。
我的用户注册部分,用户权限管理部分,和session管理部分都是从Borland网站
下载的代码,看了看就直接用了,没化太多时间仔细琢磨,不过想来也不会有大
问题。(程序挺简单,没什么出大问题的机会)
我不知道你是否为每个用户都建立单独的ClientDataSet,DatasetProvider,
Query。我觉得问题可能不在这里。
能不能简单介绍一下你的思路和程序结构?
如果有兴趣就深入讨论一下吧?E-mail: [email protected]
have a nice day.^_^