从ASP .NET webservice调用AS400 SP

时间:2010-01-12 09:27:24

标签: asp.net stored-procedures web-services ibm-midrange

我在AS400中有一个带有IN和OUT参数的外部存储过程(SP)。当我从带有IN和OUT参数的webservice调用我的SP时,它会显示一个错误(Attempted to read or write protected memory)。但是当webservice时将所有参数设置为IN模式并调用我的SP它是否正常工作。

1 个答案:

答案 0 :(得分:2)

仅仅为了论证,存储过程在AS400上运行并不重要。从ASP.NET Web服务的角度来看,它使用的是常规DB2数据库。 BTW如何从Web服务连接到数据库,ADO.NET,ODBC或其他东西。

您是否尝试从AS400 SQL命令shell(STRSQL)调用存储过程?您是否尝试从Client Access Navigator SQL脚本调用存储过程?特别是如果最后一个工作,你的SP在技术上是正确的。请注意,您可以在CA Navigator中检索SP的定义。研究IN和OUT参数非常好,因为DB2对这些参数的类型不太宽容。

请注意,as400上的外部程序(ILE或非ILE?)必须支持您为存储过程定义的参数类型。也许您的IN参数是正确的,但您的OUT参数不正确。因此,如果要返回值,程序可能会失败。此外,您可以定义一组不同的参数(例如SQL而不是JAVA)。我可以想象定义错误的集会产生奇怪的效果。

目前,使用CA Navigator测试您的SP(适用于所有AS400)。如果可行,您的SP可以正常工作。然后,您可以将问题缩小到Web服务。

此外,在DB2中,您可以定义参数als INOUT。那也是一个不错的实验。