• com+


    To   freevc   (梦想飞):  
              1.   “是不是在com+里ado   的用法和在普通程序里是一样的了?”  
      ===================================================================================  
              是的,ADO的用法没有什么改变,因为多层分布式应用系统中的数据(即记录集合)是以OleVariant的形式在机器间进行传递的(抛开底层数据结构不谈)。请看以下数据传递过程,你就明白为什么ADO的用法没有改变了,因为其提供的数据要经过TDataSetProvider封包后再传递给客户端。客户端[TClientDataSet]---TDCOMConnection---服务器[TDataSetProvider]---具体数据存取引擎 [TADOQuery]---具体数据库[SQL   Server2000]。  
       
              2.   “客户端怎样才能把要执行的sql语句传给com+类里的adoquery?”  
      ===================================================================================  
              假定你的COM+接口为ITestDCOM,添加一个方法为MethodTransferSQL,然后添加一个参数strSQL   :   WideString,最后把你要传递的SQL语句赋值给该参数,这是第一步。第二步,你在该方法中实现将strSQL参数赋值作为TADOQuery对象的SQL语句,不就可以了吗?还有一种更加快捷的方式就是直接对TDataSetProvider对象的Options属性进行赋值,然后你就可以直接操作TClientDataSet对象的CommandText属性对TADOQuery进行SQL语句的赋值了。  
       
              3.   “在com+类中怎么样定义一个返回数据集的函数,在客户端又怎么样来调用它?”  
      ===================================================================================  
              注意,如果你不是开发Web应用程序,请返回OleVariant类型的数据,然后将其赋值为TClientDataSet.Data,由 TClientDataSet直接帮你解析为数据集即可。客户端如何调用?为了让你有一个比较形象和充分的了解,我来写一个简单的示例:  
              COM+端的ITestDCOM有一个方法为MReturnRecords,其形式为:  
              function   MReturnRecords(var   ReturnData   :   OleVariant)   :   Integer;  
              begin  
                  1.   调用TADOQuery对象进行数据库操作  
                  2.   ReturnData   :=   TDataSetProvider.Data  
                  3.   Return   100   //预先设定的返回值  
              end;  
              在客户端你就可以使用一个TClientDataSet对象和一个函数将COM+返回的数据进行显示或其他的操作了。  
              function   GetRecordsFromDCOM   :   Boolean;  
              var  
                  aDCOMObj   :   ITestDCOM;  
              begin  
                  aDCOMObj   :=   coTestDCOM.CreateRemote('MidServer');  
                  aDCOMObj.MReturnRecords(aClientDataSet.Data);  
                  Result   :=   True;  
              end;  
              由于时间所限,以上论述和伪码中可能存在错误,但希望给你帮助。  
     
  • 相关阅读:
    Nginx开启Gzip压缩
    VMware克隆虚拟机,克隆机网卡启动不了解决方案
    Linux 几个简单的操作命令
    1. Java环境搭建及demo
    美柚记录
    action找不到
    < >
    document 写法
    develop process
    git stash
  • 原文地址:https://www.cnblogs.com/bridge/p/1449905.html
Copyright © 2020-2023  润新知