关于在Socket中传送TDataSet的问题(100分)

  • 主题发起人 主题发起人 Vinson
  • 开始时间 开始时间
我也有和【smj_9547】一样的问题!用ClientDataSet接受的Data和DataDataSetProvider
发送的Data数据格式如何控制?
好用好多Midas程序中数据库的数据可是可能是变化着的.(如字段名称发生啦变化,或着是表名,
等等),这时客户端的程序要求是不改动程序。那如果要灵活的话!就要控制客户端和应用程序服务
之间的数据通讯的问题。就是服务器发给客户端的格式是一样的,而AppServer端从数据库取得
的数据要整理一下!不知我说清楚没有?各位高手有什么高招,能给我指点一下吗?
 
这个问题很感兴趣!!关注!
 
to 程云:
可以在客户端向服务器端发送SQL语句.然后在服务器端解析执行。
 
To TYZhang:
大侠,这几天到哪了?回来回答我的问题好吗?我急需你的帮助!
 
大家听说过RDS Model吗? 如果看过RDS的资料, 你就会发现borland的Midas实在烂!
尽管我对RDS也不熟
 
To Vinson:
最近到上海出差,几天未上网。
数据发送不是用SendStream而是用SendBuf发送,在客户端用ReceiveBuf接受。

为什么这个程序运行时出错
procedure TForm1.Button1Click(Sender: TObject);
var
MyData:variant;
P:Pointer;//Add
Size:Integer;//Add
begin
//ClientDataSet1.Data:=DataSetProvider1.Data;
//ClientDataSet1.active:=True;
// MyData:=ClientDataSet1.Data;
MyData:=DataSetProvider1.Data; //Add
Size:=VarArrayHighBound(MyDate,1)-VarArrayLowBound(MyDate,1)+1; //Add
P:=VarArrayLock(MyData); //Add
if ConnectedFlag then
//DataServer.Socket.SendBuf(MyData,ClientDataSet1.DataSize);//出错处,出错号为10057.
DataServer.Socket.SendBuf(P^,Size);//Modify
VarArrayUnlock(MyData);//Add
end;

你的程序修改如上,修改后就可以发送啦。但是在客户端接受时要注意TCP/IP包的大小
为1024字节。你可以找个文件传送的例子看一看就可以啦。
或者你给我个Email,我发个例子给你。
 
To TYZheng,
你还是给我一个例子吧!我的E-Mail是:vinson.ye@263.net
谢了!
 
多人接受答案了。
 
TYZheng:
你也给我发一个例子好吗?!我的E-Mail是:scjinsui@163.net,
谢谢,谢谢!!!
 
后退
顶部