【问题标题】:How do I omit a parameter in a JScript ADO/ASP classic method call?如何在 JScript ADO/ASP 经典方法调用中省略参数?
【发布时间】:2013-06-13 08:03:15
【问题描述】:

如何在 JScript ADO/ASP 经典方法调用中省略参数?

例如,RecordSet 对象有一个GetString 方法(例如recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr),其中除第一个参数之外的所有参数都是可选的。

如果我想跳过 VBScript 中的参数(例如,对一个参数使用默认值),我可以使用 recordset.GetString 2, , "|",或使用命名参数。

但是,我似乎不能用 JScript 做同样的事情。我尝试使用 null 作为可选参数,使用空字符串 (''),完全省略它(与 VBScript 一样),并使用 JSON 样式的命名参数,但没有成功。

是我遗漏了什么,还是这不可能?

【问题讨论】:

    标签: asp-classic ado jscript


    【解决方案1】:

    如果你相信this statement

    在 VBScript 中,忽略函数调用的参数是合法的,通过 只写一个逗号,如:

    adoCmd.Execute , , adExecuteStream

    在 JavaScript 中,这是不合法的,但到目前为止,在所有情况下,我们都有 能够以某种方式解决这个问题,主要是通过指定 null 或用零代替缺失的参数。

    如果您为每个 ADO 方法调用制定了特定策略,则可以避免混合语言。对于您的 .GetString() 情况,适当的 zilch 值为 -1。我对这个(特定)解决方案正确性的证据:

    • -1 在 VBScript 中也“有效”
    • 其他有趣的数值 (0, -10) - 和(令人惊讶的)未定义 - 抛出“不允许操作”错误
    • "" 和 null 会引发类型错误

    【讨论】:

      【解决方案2】:

      这在纯 JScript 中是不可能的。要使用默认参数值,您需要在方法调用中明确指定这些值(当然,前提是您知道这些值是什么)。

      一个可能的选择是混合使用 JScript 和 VBScript 代码,例如从 VBScript 调用 GetString 函数并将其结果返回给 JScript。一些例子(应该给你的想法):WSHHTAASP

      【讨论】:

      • 好的,谢谢你的回答,海伦。我也很欣赏您列出的替代解决方案(尽管我总是尽量避免使用 VBS)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多