请教一个delphi问题

现有客户端和服务端程序,使用socket通讯,客户端通过socket发送查询参数给服务端,服务端通过监听端口接受到这个参数后形成一个完整的sql查询语句,然后连接数据库查... 现有客户端和服务端程序,使用socket通讯,客户端通过socket发送查询参数给服务端,服务端通过监听端口接受到这个参数后形成一个完整的sql查询语句,然后连接数据库查询出结果。
请问现在如何将查询出来的结果返回给客户端?我希望客户端使用dbgrid形式将数据显示出来而不是一个简单的memo或者sle显示
问题点1:选择用什么样的‘媒介’来保存这个查询数据集,然后发送给客户端(数据包发送的话貌似必须是已知的大小,即使是简单的string,如果不写成string[10]这样带大小的貌似sendbuff的时候会出错),想知道选用什么样的数据类型来sendbuff进去
问题点2:客户端接受到的数据通过什么样的方式能让dbgrid显示接受到的数据集呢。
最好直接贴出客户端跟服务端的重要部分的源码,谢谢了!
展开
 我来答
windblast
2012-06-11 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
我觉得你的功能使用 datasnap 来最合适,如果用socket通讯,对于像数据库这种,如果是数据量比较大,数据比较复杂的话,两者之间的通讯比较麻烦。

而用 datasnap ,可以在客户端执行服务器端编写好的功能函数,比如直接在客户端调用服务器端数据显示在dbgrid里,而且编程上个人觉得也不难。
追问
我了解了下datasnap,就是我想实现的功能,但是找不到demo,因为我用的是delphi7,您手里有一些简单的例子吗?或者可以发一份给我吗?我的邮箱:550328976@qq.com
谢谢了!
jimwus
2012-06-11 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:121万
展开全部
这个你要做数据包进行发送
建立一个全局单元,服务端和客户端都调用它,保证两边对应的包是一样的。

TUser = record
Current, //当前编号
Count :Integer; //总数据数
ID :Integer;
Name :String[20];
end;
然后发送包给客户端,当Current和Count相等时表示接收结束
我建议你用TCP或UDP控件通 讯较方便
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式