我学习三层的时候,书上说:“选取右键选择‘Export MyProvider from data module',将MyRemoteModule.MyProvider以OLE对象形式在操作系统中注册IProvider接口,供客户程序进行远程连接’”。
可是我到处单击鼠标右键,也没找到“Export MyProvider from data module”这一句。
请问应该怎么注册IProvider?

解决方案 »

  1.   

    啊哈,你的书的版本是针对 Delphi3 版本的, 在那个时代 csdn 上用三层的人还不多, 可能知道的人不多在 Delphi4 up 的 delphi 版本中是不要 export provider from data mdoule 的, 所有这些过程被 IAppServer.AS_GetProviderNames 代替, 而这个函数又是透明的.在 d4 up 版本开发三层的一个最简单例子建立过程如下server side
      1. 在菜单中 new Application 或 new ActiveX library(ActiveX页)
      2. 也是菜单中 new RemoteDataModule or TransactionalDataModule
      3. 放一个 Query(可以用 BDE页下的, 在实际开发中不要尝试用BDE开发)
      4. 设 Query.DatabaseName = DBDEMOS, 加一条语句 select * from animals
      5. 试试 Query.Active true 再设回 false
      6. 放一个 DataSetProvider 下来(在 Data access 页下
    运行, ok, 是 ActiveX library 的不能运行, 点run->register activex serverclient side
      1. new Application
      2. 放一个 SocketConnection or DCOMConnection
      3. 设 HostName or IP address, 然后设 ServerName
      4. 试试 Active true
      5. 放一个 ClientDataSet, 设 remote server 和 provider name
      6, 试试 ClientDataSet true
    ok 运行明白了吗?
      

  2.   

    server side 加一句写6. 后
    7. 设 DataSetProvider.DataSet 成 Query才能运行是否 export? 这在 DataSetProvider 中 Exported 设, 设成 false 就是不导出, true 导出