delphi 6 调用 .net所写的webservice , webservice提到的函数为  public string  DataSetTest(DataSet dsTest)
******************************Delphi生成的Service 单元 *************************************************
  dsTest = class(TRemotable)
  private
    Fs_schema: String;
  published
    property s_schema: String read Fs_schema write Fs_schema;
  end;
 
  ServiceSoap = interface(IInvokable)
  ['{77573149-9C57-FA51-F11F-EFD527C91BD9}']
    function  DataSetTest(const dsTest: dsTest): String; stdcall;
  end;******************************Delphi生成的Service 单元 *************************************************
那么,在Delphi 6 中如何调用 DataSetTest,主要是dsTest 这个参数如何传入 ??? 多谢高手指教,最好提供详细的代码,谢谢!!!!!

解决方案 »

  1.   

    将数据集转成XML再传入,参考
    http://dn.codegear.com/article/28631
      

  2.   

    DELPHI与.NET自身的数据集对象,是各成体系的复杂结构, 你不可能简简单单把一个DELPHI的DATASET对象'传'到WEBSERVICE端. 在WEBSERVICE两端传端的类型,如果是对象,也必须是两端都能理解与识别的东西.
    思路一: 将DELPHI的DATASET按一定规则转换成字符串, 使用XML来约定这个转换规则是方法之一.
    然后WEBSERVICE端的.NET程序,也得按同样规则解析这个字符串,生成.NET环境的数据集对象...
    思路二: 还是转换,不过不是转换成简单的字符串,而是转换成约定的传输对象.  为保兼容性,通常是用WSDL语法手工编写这个类定义 ,然后由WSDL生成DELPHI和.NET两端的代码. 当然,这个传输对象同数据集的转换函数你还是得编写的. 
      

  3.   

    反正,我是将XML作为字符串处理的,写了一个分析器。