如何在 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 解决方案][Advantage 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][Advantage SQL][ASA] 错误 5154:存储过程执行失败。ProcError 7200:AdsQuery1:错误 7200:AQE 错误:State = S0000;NativeError = 2124; [iAnywhere Solutions][Advantage SQL Engine]运算符的操作数无效: 这听起来绝对是一个糟糕的日期值。就像它在日或月部分缺少前导零一样。我会尝试记录您在发生错误时使用的日期值(或整个 URL)。我敢打赌,这将有助于解释问题。如果您知道它发生的时间,您甚至可以在 Apache 访问日志中找到它。以上是关于如何在 adsweb 中执行带日期的存储过程的主要内容,如果未能解决你的问题,请参考以下文章