PHP,调用具有可选参数的ADO对象方法

时间:2009-10-19 21:18:53

标签: php com ado

我几乎完成了一组基本的辅助函数,用于通过PHP访问ADO。尝试使用为$ cmd->执行的adExecuteNoRecords选项执行存储过程时遇到问题:执行(,, adExecuteNoRecords);

我为前两个参数尝试了null,新的VARAINT(),新的VARIANT(null),新的VARIANT(VT_EMPTY)等......

我要么返回“无法通过引用传递参数1”或者类型不匹配的com_exception,而且 - >执行(,, adExecuteNoRecords)不会通过PHP解析。

我已经做了很多搜索,但我没有找到任何人使用它的一个例子。

所以在PHP中调用具有可选参数的COM对象的方法时,如何将开始参数设置为空?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试传递$missing = new Variant(VT_ERROR)代替可选参数。

顺便说一句,在COM参数中,即使是可选的,仍然有类型。如果一个可选的参数是BSTR,那么省略它通常就像传递一个空字符串。可能看起来很奇怪的是,可选参数的默认值在类型库中指定。即可选的BSTR参数可能具有“abc”默认值。所以你应该在用PHP构造调用之前研究这个。在您的特定情况下,Execute有3个可选的VARIANT参数,没有特定的默认值,因此我们使用VT_ERROR表示缺少VARIANT参数。