捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
方便好用的远程数据库对象V1.31(更新)
关键字:远程 数据库 三层 方便 高效 实用
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2009/8/1
发布者:dcopyboy 发布时间:2009/8/1
编辑器:DELPHI7 语  种:简体中文
分 类:数据库 下载浏览:2606/17945
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
 更新说明
   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():上传文件。
    文件的上传、下载还很不完善,如大文件、权限等问题还没解决。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论41条 当前显示最后6条评论
choysan 2010/1/10 22:32:04
 做得不错,值得学习. 研究中
huhuc 2010/1/28 17:07:59
东阳深蓝 16:48:52
不是,只是更适合在INTEL上使用,光纤+ADSL,速度可媲美局域网。
 &不吃兔子的 16:50:14
那你传送ADO是用的文件还是流?
东阳深蓝 16:50:44
有差别吗?
 &不吃兔子的 16:53:54
文件就用
  qry.SaveToFile();
  qry.LoadFromFile();
这样的办法
流就是用Recordset Open Save的办法

 &不吃兔子的 16:54:46
还有那个更新ID的问题你解决了吗
东阳深蓝 16:55:13
若果有10万条数据,你是采用流快还是文件快?
 &不吃兔子的 16:56:13
流和文件的size是一样的,你把文件读出来一样要用内存

东阳深蓝 16:57:20
这是ADO,你去试试看就知道了,要多用实际来检验真理!!
 &不吃兔子的 16:58:18
什么意思,那里有问题可以直接说
东阳深蓝 17:00:46
好了,我要下班了,下次再聊。
sunyesy 2010/3/10 14:02:52
IsOPenAutoPost: boolean; //是否支持自动Post数据 默认是支持
IsOPenAutoPost 设置成false 后
如何保存修改过的数据呢?
ygh_216 2010/3/17 10:23:29
非常感谢,正在找这样的东西
yunlong 2010/7/4 18:11:24
服务器端编译通过后打开EXE后,什么也不做,在 任务管理器 中看到线程数竟然有207个?不知道怎么回事
ywcljty 2011/2/22 22:43:13
不能支持sql参数存储过程呀
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号 更新RSS列表