使用 TClientDataSets 发送文件
如何使用 TClientDataSet 发送文件?
我正在使用 Delphi2010,
谢谢
弗拉基米尔。
对于造成的混乱,我深表歉意,我的目的是将 pdf 文件从一个 TCLientDataSet 发送/传输到另一个……我们正在使用 MIDAS…… 谢谢
How do i send files using TClientDataSet?
i am using Delphi2010
thanks
vladimir.
My appologies for the confusion, my intention is to send/tranfer pdf files from one TCLientDataSet to Onother... we are using MIDAS...
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的文件作为 BLOB 数据保存在 ClientDataset 的字段之一中,并且您的 ClientDataset 使用 DataSnap 连接到远程 DatasetProvider,则只需调用 TClientDataset.ApplyUpdate 就足以将更改的数据从客户端发送到 DataSnap 服务器。
如果您的ClientDataset只存储文件名,文件内容没有保存到数据库中,那么您应该将文件单独上传到服务器。
要将文件上传到服务器,您可以定义一个以流作为参数的服务器方法,并从客户端应用程序调用它。
如果您不知道如何向 DataSnap 2010 服务器添加服务器方法,那么我建议您阅读 Bob Swart 的“Delphi 2010 DataSnap:您的数据在您想要的位置、以您想要的方式存储"
If your files are saved in one of the fields of ClientDataset as BLOB data, and your ClientDataset is connected to a remote DatasetProvider using DataSnap, then just calling TClientDataset.ApplyUpdate is enough to send the changed data from client to DataSnap server.
If your ClientDataset just stores file name, and file content is not saved into database, then you should upload the file to server separately.
To upload the file to server, you can define a server method which takes a stream as its parameter, and call it from your client application.
If you don't know how to add a server method to your DataSnap 2010 server, then I suggest you read Bob Swart's "Delphi 2010 DataSnap: Your data where you want it, how you want it"
我假设您想要将客户端数据集从一台机器移动到另一台机器。只需使用 TClientDataSet.SaveToFile 将其写入文件,然后使用适合您的任何传输方式发送该文件。在接收器上使用 LoadFromFile 将 CDS 加载回来。我怀疑还有一个 SaveToStream,它允许您将其写入 RAM 并通过套接字发送。
I'm assuming you want to move client datasets from machine to machine. Just use TClientDataSet.SaveToFile to write it to a file, and send the file using whatever transport suits you. Use LoadFromFile on the receiver to load the CDS back. I would suspect there's a SaveToStream as well, which would allow you to write it to RAM and send it over a socket.