盒子资源分类
方便好用的远程数据库对象V1.31(更新)
关键字:远程 数据库 三层 方便 高效 实用
来 自:原创
平 台:Win2k/XP/NT,Win2003
下载所需:0 火柴
深浅度:中级
完成时间:2009/8/1
发布者:dcopyboy
发布时间:2009/8/1
编辑器:DELPHI7
语 种:简体中文
分 类:数据库
下载浏览:2604/17973
更新说明 Dcopyboy Email:dcopyboy@tom.com QQ:445235526 首先感谢程序原开发者马敏钊先生,多日孜孜不倦的指点! 初次使用本远程数据库对象,深为其简单、方便、实用所吸引,但不久即发现其存在一些问题,于是便边修改、边与马先生QQ联系,得到了其诸多指点,但程序也给改的四不像了,现特公布其源码,望能得到马先生及广大朋友的进一步指点,主要更新: 1、对远程登陆的简单密码认证。 2、支持SQL批处理, RmoClient.ExecAnSql() 语句可同时执行多条SQL语句,语句间用||或独立行Go 间隔, 如: with gzlmx do begin sql.add('update 审批工作流 set YDBR = YDBR+''' + usern + ';'' '); sql.add('where xh=''' + gzl['xh'] '''' ); sql.add(' go '); sql.add('update 审批工作流1 set YDBR = ''' + usern + ';'' '); sql.add('where xh=''' + gzl['xh'] + '''' ); sql.add(' go '); end; RmoClient.ExecAnSql(gzlmx);//用于替换gzlmx.ExecSQL RmoClient.OpenDataset() 语句可同时执行多条SQL语句,但最后一条具有数据返回,语句间用||或独立行Go 间隔, 如: with gzlmx do begin sql.add('update 审批工作流 set YDBR = YDBR+''' + usern + ';'' '); sql.add('where xh=''' + gzl['xh'] '''' ); sql.add(' go '); sql.add('update 审批工作流1 set YDBR = ''' + usern + ';'' '); sql.add('where xh=''' + gzl['xh'] + '''' ); sql.add(' go '); sql.add('select * from 审批工作流 where xh=''' + gzl['xh'] '''' ); end; RmoClient.OpenDataset(gzlmx);//用于替换gzlmx.open; 或 gzlmx.active := true; 3、支持SQL查询包 RmoClient.PackSql() 同时执行多个SQL查询语句,将查询结果打包返回客户端的流中,如: path.sql.add('select * from XSQYDJK '); path.sql.add(' Go '); path.sql.add('select * from ' + sysdatabasename + '..用户授权 '); path.sql.add(' Go '); path.sql.add('select xh,menu,id from ' + sysdatabasename + '..主菜单 '); RmoClient.PackSql(path.sql.text, Stream); RmoClient.GetDbFromPack() 抽取包中指定顺序的查询结果到AdoQuery中,如: RmoClient.GetDbFromPack(mainMenudb, stream, 3); 在远程数据库中,网络延时是数据库实时响应的大敌,SQL批处理及SQL查询包的功能可巧妙的解决这一问题。 4、事务处理 支持Delphi 的BeginTrans、CommitTrans、RollbackTran事务处理功能,将相应的代码改为RmoClient.BeginTrans、RmoClient.CommitTrans、RmoClient.RollbackTran等即可。 服务器端采用动态创建连接的方式(在响应BeginTrans时创建数据库连接,CommitTrans、RollbackTran时释放连接)可有效地降低服务器端资源的消耗。 5、支持独立的Blob字段读写 RmoClient.UpdateBlobField(SQL: string; Stream: TMemoryStream) RmoClient.GetBlobField(SQL: string; var Stream: TMemoryStream) 其中SQL语句应仅为读写Blob字段专写,但参数名可任意,如update 审批工作流 set 附件=:FJ where id=12 ,select 附件 from 审批工作流 where id=12 6、部分支持Parameters功能 不知啥原因,有时调用 Parameters.ParamByName().value设置参数值时会出现找不到参数名的提示,你在不得不用Parameters功能时,建议你在SQL语句后调用一下Parameters.ParseSQL(),再设置参数值。 7、取得远程数据库中的表名 RmoClient.GetServerTableName:换行符间隔的字符串,只对ACCESS库及SQL库进行过测试,其他类型的未测试。 8、支持双模态 双模态是指程序可工作于C/S方式及远程数据库连接模式。 当 RmoClient.FpubADOConnection<>nil 时工作于C/S方式,其数据库连接方式即为 RmoClient.FpubADOConnection。 当 RmoClient.FpubADOConnection=nil 时工作于远程数据库方式。 当然某些功能如文件的上传、下载等,C/S方式是无法支持的,而SQL查询包在C/S下是多此一举的。 9、修改完善了对单一数据库直接插入、修改、删除记录的支持,统一、简化了接口,更易旧程序的升级更新。 如:多Blob字段、ID字段、ACCESS库、NULL字段等 10、Server端已完成较成熟的通用封装。 11、支持简单文件的上传、下载: RmoClient.UpLoadPath:上传文件路径,换行符间隔的字符串。 RmoClient.DownLoadpath: 下载文件路径,换行符间隔的字符串。 RmoClient.DownLoadFiles():指定路径中的下载文件列表,(不支持子文件夹)换行符间隔的字符串。 RmoClient.DownLoadFile():下载指定文件。 RmoClient.UpLoadFile():上传文件。 文件的上传、下载还很不完善,如大文件、权限等问题还没解决。
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们 !
相关文章
相关评论