sochet问题(300分)

  • 主题发起人 主题发起人 lyd_2000
  • 开始时间 开始时间
L

lyd_2000

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层环境下,服务器端用的是socket组件,当ClientDataSet1.packedRecords>0时
查询数据时可以工作,但是当用鼠标移动记录指针到尾部时出现如下错误:
'ESocketError,windows socket error:(10055), on API 'recr''。
经过查询delphi帮助,判断为
A failure occurs when reading from or writing to a socket.
怎样避免出现这个问题?
另外当ClientDataSet1.packedRecords:=-1时,ClientDataSet1.active:=true时
机器长时间没有反映,why???

 
第一个问题我想可能是服务器在重发下一个包的时候你的客户端接受有问题
具体的 就要看你的源码 了
第二个问题说的太简单了
很难说了
最好把代码写出来可以分析一下了
 
1 当ClientDataSet1.packedRecords>0时,Fetchondemand is ture or false?
false:调整客户端取得下-封包的代码;
true:每问题。
2 表是不是很大,客户端下载时间过长?
 
ClientDataSet1.packedRecords:=-1
是要将全部记录都传到客户端,你可将其置为一个较大的值,应该能解决问题。
如ClientDataSet1.packedRecords:= 5000;
 
1.将Fetchondemand 置为true试试。
2.是你的表数据太多了!!等待!再等待。三层结构的优势就在于减轻网络负担,客户端
只提取需要的数据。ClientDataSet1.packedRecords:=-1!!!!太恐怖了吧!不如用
二层算了!
 
我已经解决!
 
哪里老大,可以给小弟一个用midas 下的socket connection作三层数据结构的例子,
(BCB的最好了!或者 是DELPHI的或者是VC++)
或者告诉我如何用SOCKET CONNECTION出可以(但服务程序如何做。。。)
我会用DCOM CONNECTION?????
多多指教了!!!!!!!!!!!!!!!!!!!!!!1!
中秋可以请大家喝茶。。。。。。。q我的MAIL:
along@e-pic.com
 
另外当ClientDataSet1.packedRecords:=-1时,ClientDataSet1.active:=true时
表示你的client端會把你所聯接的那個表所有資料全部抓下來!
'ESocketError,windows socket error:(10055), on API 'recr''出現時是你的socketserver
的inactive timeout值設的太小!
 
我比较同意bright78的看法,不知你的解决方法是如何?能否说出来看是否是一致.
 
我在用BCB5做多层结构系统时,我在Server端加入了一个取得服务器IP地址的方法:GetServerIP它的参数是vIP:Variant *,IN方式,并在服务端实现了这个方法,
加入的代码如下:
*vIP="192.168.0.01";最后我注册成功。
可是在我开发客户端程序时,我用TSocketConnection
当取得它的服务时我是这样做的:
Variant* vip;
SocketConnection1->AppServer.GetServerIP(vip);
Edit1->Tex=vip;
可 是我在运行程序时出错,没有编译通过。
它说getserverIP不是variant的成员
getserverIP is not a memober of variant
请问?
我该如何去调用这个方法呢?
请各位大侠多多指教?
小生的QQ:65466700(24小时在线恭候)
MAIL: alongsun@sina.com
 
后退
顶部