社区
网络通信/分布式开发
帖子详情
三层专家请进,一块儿讨论这个问题. ^_^
wizardqi
2005-07-25 05:10:15
不知道在三层中大家可否碰到过这种问题:由于客户端是多窗口,所以可能多个ClientDataSet对应服务器端的同一个Provider,不知大家如何解决。我使用了无状态Provider,但是在设计期没办法提取数据字段定义。
...全文
779
63
打赏
收藏
三层专家请进,一块儿讨论这个问题. ^_^
不知道在三层中大家可否碰到过这种问题:由于客户端是多窗口,所以可能多个ClientDataSet对应服务器端的同一个Provider,不知大家如何解决。我使用了无状态Provider,但是在设计期没办法提取数据字段定义。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
63 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wizardqi
2005-08-26
打赏
举报
回复
快点参与有分呀,我要揭贴了,可是现在给分每人分值太大,快发表意见呀!^_^
steelxu5
2005-08-16
打赏
举报
回复
标记,学习中
waysoft
2005-08-16
打赏
举报
回复
学习:)
madyak
2005-08-16
打赏
举报
回复
我觉得用主从数据模块解决这个问题比较好.
请参考代码:
Program Files\Borland\Delphi7\Demos\Midas\SharedConn
Teng_s2000
2005-08-16
打赏
举报
回复
学习中...
quicksand201
2005-08-14
打赏
举报
回复
gz
lovcal
2005-08-14
打赏
举报
回复
问一下,DataSetProvider不是对每个客户端连接都建立新的进程么?
惭愧得很,我现在有个项目的三层开发怎么跟大家讨论的都不太相同啊?大家把自己如何解决的也都说说啊,我们学习一下,呵呵
另外加个问题:就是关于客户端与服务器端通信双方死机的问题,比如说在客户端调用中间应用服务器接口函数期间(返回之前),将服务器端的网线断了,客户端就死掉了,这些问题我找遍了资料都得不到答案,在版上问了多次,但也都没结果,不知道各位大哥在三层的实现中是不是从来都不存在这个问题阿?小弟很郁闷,呵呵
herman~~
2005-08-09
打赏
举报
回复
学习
wizardqi
2005-08-09
打赏
举报
回复
其实这点Borland的更新机制本身已经是无状态了,唯一需要保护的是用户下载数据时需要用户记录自己的状态,这也是解决问题的关键,修改后的DataSetProvider和ClientDataSet具有了这种协调功能,所以每个DataSetProvider都可以重复利用,不会出现问题,所以中间件的数据访问模块利用率很高,再加上业务对象加入Pooling机制,经测试确实非常有效率。
angelior
2005-08-08
打赏
举报
回复
解决了?
要不说感谢了?
lwk_hlj
2005-08-08
打赏
举报
回复
我有来了
不知道在三层中大家可否碰到过这种问题:由于客户端是多窗口,所以可能多个ClientDataSet对应服务器端的同一个Provider,不知大家如何解决。我使用了无状态Provider,但是在设计期没办法提取数据字段定义。
-----------------------------
所以可能多个ClientDataSet对应服务器端的同一个Provider
每个clientdataset在对数据操作的时候
在其BeforeApplyUpdates(Sender: TObject;
var OwnerData: OleVariant);
begin
OwnerData:='select * form tablename';
end;
wizardqi
2005-08-08
打赏
举报
回复
感谢大家参与讨论.
wizardqi
2005-08-08
打赏
举报
回复
是呀,我自己想到了一个很有效率的解决办法,现在项目可以继续了。
lwk_hlj
2005-08-03
打赏
举报
回复
Connection: TADOConnection;
dataset: TADODataSet;
DSPRead: TDataSetProvider;
我就用一个!
lwk_hlj
2005-08-03
打赏
举报
回复
晕,给大家一个方法看看!
{-------------------------------------------------------------------------------
过程名: TMaterialServer.OpenData
作者: 李文凯
日期: 2004.12.06
描述: 请修改
实现方法: 请修改
参数: SQLFlag: Integer; const SQLWhere: WideString; var Data: OleVariant
返回值: 无
-------------------------------------------------------------------------------}
function TMaterialServer.OpenData(SQLFlag: Integer;
const SQLWhere: WideString; var Data: OleVariant;
var strMSG: WideString): Integer;
var
strSQL: string;
strLog:string;
begin
strLog:='OpenData(SQLFLAG='+inttostr(SQLFlag)+',SQLWHERE='+SQLWHERE+')';
Result:=1;
strSQL:=getSQLByID(SQLFlag);
if strSQL='' then
begin
strMSG:='编号为['+IntToStr(SQLFlag)+']的SQL语句没有定义!与请系统管理员联系!';
MainServer.AddInformat(FUserNO,FUserName,'读数据',strMSG,strLog,1);
Exit;
end;
if Trim(SQLWhere)<>'' then strSQL:=Format(strSQL,[SQLWhere]);
try
dataset.Close;
dataset.EnableBCD:=False;
dataset.CommandText:=strSQL;
dataset.Open;
Data:=DSPRead.Data;
dataset.Close;
Result:=0;
except
On E:Exception do
begin
strMSG:='获得数据失败,与请系统管理员联系!';
MainServer.AddInformat(FUserNO,FUserName,'读数据','编号['+IntToStr(SQLFlag)+'] 读取出错'+E.Message,strLog,1);
end;
end;
cds.ProviderName:='';
end;
dhf88
2005-08-03
打赏
举报
回复
我采用Delphi 6在Win 2000下开发基于COM+的三层系统,数据库服务器和应用服务器安装在同一台机器上,采用TSocketConnection连接,该系统的客户端每天都会死机,客户数5个以上大概1天发生1或2次,发生在客户端连接上后,网络中有掉包或客户机长时间没操作异外的断开,应用服务器上还显示客户机的IP地址,应用服务有时就会死掉.请问如何解决
wizardqi
2005-08-03
打赏
举报
回复
最后讨论阶段,马上揭贴了.
WuChenCan
2005-08-03
打赏
举报
回复
lwk_hlj(阿凯(学习.net中)) 的架构模式跟我的很相似,有机会可以讨论一下。wccyxf@163.com
海宏AA
2005-08-03
打赏
举报
回复
我一般是放多个Provider。还有动态创建Provider,用完了释放。
服务器上是有访问就自己创建的,不明白,怎么会重复呢?顶一下。
wizardqi
2005-08-03
打赏
举报
回复
我的业务逻辑使用了Pooling机制,同时共享了数据访问模块,所以数据访问模块必须无状态.
加载更多回复(43)
转载(https://blog.csdn.net/qq_36738482/article/details/72823509)大数据的概念
1、大数据定义 对于“大数据”(Big data)研究机构Gartner给出了定义,“大数据”是需要新处理...换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工...
TowardsDataScience 博客中文翻译 2022(一百零六)
对于深度学习实验来说,这可能会变得非常混乱,在深度学习实验中,配置和超参数的列表可能会在一个人脱离即席实验后迅速增长。根据定义,模型训练配置是分层的。例如,实验配置可以分解为数据和模型规格。
TowardsDataScience 博客中文翻译 2022(三百六十)
在这篇文章中,我们介绍一个流行的生存分析算法,Cox 比例风险模型。然后,我们定义了它的对数部分似然和梯度,并通过一个实际的 Python 例子对它进行优化以找到最佳的模型参数集。卡蒂亚·奥斯丁在Unsplash上拍摄的...
MicroPython 物联网教程(五)
下面显示了一种方法来做到这一点。这里,我们看到了设备 id、用户 id、AIO 键和频率(用于更新数据)的定义。确保更改这些以匹配您的 Adafruit IO 凭证,并相应地设置频率。您可能希望将频率保持在示例中的 5 秒,这样...
TowardsDataScience 博客中文翻译 2021(三百七十三)
当你充分利用计算机科学学位时,它是无价的。事实是,虽然计算机科学专业的毕业生与其他专业相比失业率较低,但毕业后仍然很难找到工作。...首先,让我们创建一个示例数据框架,我们将在本指南中引用它来演示一些概念。
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章