【问题标题】:using .NET web service (Dataset) from progress OpenEdge 4GL [closed]从进度 OpenEdge 4GL 使用 .NET Web 服务(数据集)[关闭]
【发布时间】:2012-10-02 19:21:31
【问题描述】:

我在 C# .net 中使用输入参数创建了 Web 服务:DataSet

另一方面,我需要从进度 OpenEdge 4GL 10.1(不是 10.2)开始使用此 Web 服务

问题是 OpenEdge 中的数据集无法与 .net 中的数据集匹配。 结果总是返回 0

我是 C# 程序员,所以对 porgress 没有深入的了解。我在进行中的论坛上进行了研究,但结果不佳。

有什么帮助吗? 提前致谢。

*代码*****

//网络服务:C# .net

[webmethod]

public int getResult(DataSet ds)
{

  DataTable tbl = ds.Tables["datas"];

  int result=0;

  foreach (DataRow dr in tbl.Rows){ //only 1 record = 1 row

     result = Convert.toInt32(dr["field1"]); }

  return result;
}

//进展OpenEdge 10.1

--- 创建和填充临时表:field1 = 30 并且只有 1 条记录

--- 创建数据集并绑定到临时表

--- 连接到网络服务

--- 调用网络方法:

将变量结果定义为整数不撤消。

RUN getResult IN hPortType(INPUT dataset,OUTPUT result)。

消息结果视图-作为警报框信息按钮确定。 ---> 结果总是 0

/****/

有人知道如何将正在进行的数据集“桥接”openge 到 .net 数据集吗?

注意:如果从 .net 调用此 Web 服务效果很好

【问题讨论】:

  • 你能发布你到目前为止的尝试吗?也就是说,您的 C# 代码。在不知道自己做了什么的情况下,很难确定问题出在哪里。

标签: c# .net web-services progress-4gl openedge


【解决方案1】:

对于 web 服务,您应该使用 XML。那是标准化的沟通方式。

http://en.wikipedia.org/wiki/Web_service

【讨论】:

  • 他的 Web 服务肯定使用 XML
  • 感谢您的回复。我最终与老板进行了“重新谈判”:-) 1. 来自进度 Openedge 的数据集转换为字符串 XML(正在进行中,他们称为 longchar --> like long字符串) --> 数据集:WRITE-XML("LONGCHAR",variableName,?,?,?,?)。 2. Web 服务将接收为字符串 xml,并使用 XmlDocument、XmlNodeReader 和 dataset.ReadXml() 转换回 .net 数据集 感谢所有的想法! 竖起大拇指
【解决方案2】:

使用DataSet 或任何其他特定于.NET 的类型来发送到Web 服务或从Web 服务接收是一种不好的做法。 .NET 以外的任何东西都没有理由理解这些类型。

顺便说一句,同样的事情与 Java 有关。某些版本的 Axis Web 服务基本上假定它们被 Java 代码使用,并且使用特定于 Java 的类型而不定义它们。效果不好。

【讨论】:

  • 正确的 John,但是:这是来自“TOP”的请求 :-) 我确实提到了这一点,但他仍然坚持 :-( 我知道在 Web 服务中使用数据集并不常见,但因为他纯粹是这样做的他所有的程序都在openge中,而progressopenge使用dataset和temp-table这么多,这就是为什么他已经习惯了。
  • 是的,但它是什么样的“数据集”?它是 .NET 数据集还是进度数据集?
猜你喜欢
  • 2016-09-17
  • 2013-06-15
  • 2021-01-22
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2013-01-21
相关资源
最近更新 更多