如何在 adsweb 中执行带日期的存储过程

Posted

技术标签:

【中文标题】如何在 adsweb 中执行带日期的存储过程【英文标题】:How to execute a stored procedure with date in adsweb 【发布时间】:2018-03-19 21:15:10 【问题描述】:

我正在尝试在对 adsweb 的 http 调用中执行存储过程。该过程需要一个日期和一个字符串。 如果我输入:

GetBalance?todate='2018-03-15'&phone='9999999' 

我得到一个: 错误 7200:AQE 错误:状态 = 07006;本机错误 = 2109; [iAnywhere 解决方案][Adv​​antage SQL Engine]转换错误

如何输入日期? 它在 Arc32 中运行良好 谢谢, 金

【问题讨论】:

【参考方案1】:

我过去做过很多这样的事情,所以我知道它有效。通常问题是由于 URI 中的特殊字符引起的。首先,不要像示例中那样在 URI 字符串中包含任何实际的引号字符。

例如,URI 将是:

GetBalance?todate=2018-03-15&phone=9999999

adsweb 模块解析器将在 & 字符上拆分过程参数,因此您不需要使用引号。

此外,如果您有带有引号或百分比等特殊字符的参数数据,您需要在发送前对其进行编码,模块将为您解码。我在 javascript 中使用encodeURIComponent 对其进行编码。

【讨论】:

谢谢,我以为我试过了,但我会在星期一再试一次。 有时我会收到此错误: "error": "code": "7200", "message": "lang": "en-US", "value": "Error 7200 :AQE 错误:State = HY000;NativeError = 5154;[iAnywhere Solutions][Adv​​antage SQL][ASA] 错误 5154:存储过程执行失败。ProcError 7200:AdsQuery1:错误 7200:AQE 错误:State = S0000;NativeError = 2124; [iAnywhere Solutions][Adv​​antage SQL Engine]运算符的操作数无效: 这听起来绝对是一个糟糕的日期值。就像它在日或月部分缺少前导零一样。我会尝试记录您在发生错误时使用的日期值(或整个 URL)。我敢打赌,这将有助于解释问题。如果您知道它发生的时间,您甚至可以在 Apache 访问日志中找到它。

以上是关于如何在 adsweb 中执行带日期的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

带 Pivot 的存储过程不返回结果结构,而是返回零值

如何在 Pandas 中使用 sqlalchemy 执行具有多个日期参数的 sql 存储过程

在MySQL中如何创建一个带输出参数为一个表类型的存储过程

SQL存储过程如何调用存储过程?

如何创建带参数的 Oracle 存储过程?

oracle用存储过程实现对输入的日期判断是属于一年中的第几周,如20120101~20120107是