- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
远程服务器:客户/服务器远程数据传输处理
技巧
疯狂代码 http://CrazyC/ ĵ http:/CrazyC/VC/Article13893.html
在实际MIS系统中远程数据库访问大多通过Modem连接出于通信费用及速度方面考虑往往采用先将数据保
存在本地然后集中传送到远端办法远程数据传送可以有多种方案最常见是先将要传送数据打包成文件在利用文
件传输形式传送到目地在目地对数据恢复后添加到本地数据库中这种思路方法普遍地应用于证券交易系统其优
点是速度快并且可事先对数据压缩更大限度地节约传送时间及费用但这种方案也有其不足的处:由于利用文件传
输机制无法利用数据库本身特性如完整性约束、数据致性、回滚机制等因此在比较复杂数据库系统中较少采用
另种思路方法是直接将两端处理成\客户/服务器\模式将数据传送看成是向Server提交数据由于这种方案充分
利用了数据库服务器特性并且实际操作基本和局域网方式致因此本文将详细介绍这种方案另外本文部分内容是
基于Delphi/CBuilder
由于传输速度原因当传送大量数据时绝对不赞成逐条记录地向服务器提交数据而应批量地向Server提交
Delphi/CBuilder中提供了个TBatchMoveControl控件专门用于批量传送数据利用它可极大减少网络负担提高
传送速度遗憾是TBatchMoveControl控件只提供了简单控制功能没有提供显示传送进度、用户终止传送等重要
功能然而TBatchMove所依赖BDE却提供了种\回调机制\可以完成上述两个功能所谓\回调\过程是这样:当
BDE执行某种操作时比如从张表向另张表拷贝大量数据过程中每过段时间(如需要显示拷贝进度时)BDE会段你自
己写(回调)以帮助你更完全地控制这种做法有点想DLPHI中Event(事件)及事件处理--某个具体操作动作会让
VCL触发某个事件从而段你写好事件处理区别事件会触发区别处理
为了让BDE能正确地和你协同工作你必须事先\注册\你让BDE知道某个事件发生时应(回调)你某段代码
BDE提供了个DbiRegisterCallBack注册不幸是BDE联机帮助中介绍说明不能适合于Delphi/CBuilder按照该介
绍说明编写根本不能通过编译!笔者通过实战找到了正确使用BDE回调思路方法下面将详细介绍该机制使用
BDE回调机制包含以下几个步骤:
1)按BDE预定格式编写你回调
2)DbiRegisterCallBack注册你回调这样当你执行相关数据库操作时就自然地触发你回调
3)执行相关数据库操作比如BatchMove1-Exectue;
4)注销该回调
其中最关键是正确注册你回调因此先介绍第 2步(注册和注销都同只是最后个参数略有区别)
首先你应知道在哪类\事件\发生时你回调其次你应明白和该事件相关参数及数据结构--这切都发生在
DbiRegisterCallBack注册时所以下面先介绍DbiRegisterCallBack正确使用方法及介绍说明:
在原BDE帮助中该原形(C)是这样
DBIResult DBIFN DbiRegisterCallBack (hCursor, ecbType, iClientData, iCbBufLen, pCbBuf, pfCb);
要使用该必须头文件问题是Delphi/CBuilder中根本没有提供该文件取而代的是\BDE.HPP\但是在包含进
该文件后仍然不能编译通过该文件中没有DBIFN等介绍说明个简单思路方法是在代码中去掉DBIFN中各参数解
释如下:hCursor是个BDE中对象句柄如果这个参数为NULL则表示注册回调适合于所有BDE任务;第 2个参数
ecbType是指回调触发条件类别有很多种类型可以选择其中cbGENPROGRESS表示当需要显示个长操作进度时
触发这个回调;第 3个参数iClientData是传递给回调某个数据结构指针在我们例子中为NULL;第 4个参数
iCbBufLen是指回调Buffer大小该大小随第 2个参数区别而区别比如(CBPROGRESSDesc);第 5个参数
pCbBuf是回调Buffer指针该指针类型随第 2个参数变化比如cbGENPROGRESS数据结构是
CBPROGRESSDesc;最后个参数是回调地址指针当该参数为NULL时表示注销该类型回调有关回调将在稍后详
细介绍下面是注册执行长操作时显示进度回调格式:
rst=DbiRegisterCal
您可能关注的文档
最近下载
- 2025CSCO非小细胞肺癌诊疗指南2025.docx
- 第二节+串并联电路中电流的规律(教学课件)物理鲁科版(五四学制)2024九年级上册.pptx VIP
- 电信研发工程师L1题库.xlsx VIP
- DBJD25-67-2019 甘肃省建筑与装饰工程预算定额地区基价 不含税 中册.docx VIP
- 水生态产品价值实现路径.pptx
- 学习解读《中华人民共和国反不正当竞争法》课件(2025年新修订版).pptx VIP
- 数据架构、应用架构、业务架构及技术架构4A架构设计方案.pptx VIP
- 组合式空调机组运行调试使用及维护.pdf VIP
- 工程类邀请招标文件参考模板.doc VIP
- 电力内外线课题六 配电线路设备.ppt VIP
文档评论(0)