Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 通过引用将scripting.dictionary[]传递给函数_Vbscript - Fatal编程技术网

Vbscript 通过引用将scripting.dictionary[]传递给函数

Vbscript 通过引用将scripting.dictionary[]传递给函数,vbscript,Vbscript,我正在使用小型VBScript并尝试创建脚本。字典[]。我必须通过引用将字典数组传递给一个函数。我是通过编译库得到这个函数的。函数定义如下 public string Update(string name, ref Scripting.Dictionary[] Data, string sRecordId = "") 我的代码行在这里 Set objQWS=CreateObject(“Dll”) Set X=密码字典 objQWS.Update“Name”,x“ MsgBox“已发送其他信息”

我正在使用小型VBScript并尝试创建
脚本。字典[]
。我必须通过引用将字典数组传递给一个函数。我是通过编译库得到这个函数的。函数定义如下

public string Update(string name, ref Scripting.Dictionary[] Data, string sRecordId = "")
我的代码行在这里

Set objQWS=CreateObject(“Dll”)
Set X=密码字典
objQWS.Update“Name”,x“
MsgBox“已发送其他信息”
函数PassDictionary()
模糊对象
设置objDic=CreateObject(“Scripting.Dictionary”)
objDic.添加“id”,1
添加“名称”、“a”
对象。添加“extd_价格”、“b”
对象。添加“销售代表”、“c”
objDic.添加“opportunity\u id”、“d”
Set PassDictionary=objDic
端函数
问题在于
更新
功能。
每次我运行代码时,在
Update
函数上,它都会给我一个错误“类型不匹配”。有人能告诉我怎样才能让它工作吗?

你传递的是一本词典,而不是一组词典。试试像这样的东西

Set x = PassDictionary
arr = Array(x)
objQWS.Update "Name", arr, ""
但是,不确定它是否能工作,因为VBScript实际上不知道类型,所以数组的类型将为
Variant()


您可以尝试的另一件事是将参数的类型从
Scripting.Dictionary[]
更改为
Scripting.Dictionary
,因为您只传递一个字典。

您传递的是一个字典,而不是一个字典数组。试试像这样的东西

Set x = PassDictionary
arr = Array(x)
objQWS.Update "Name", arr, ""
但是,不确定它是否能工作,因为VBScript实际上不知道类型,所以数组的类型将为
Variant()


您可以尝试的另一件事是将参数的类型从
Scripting.Dictionary[]
更改为
Scripting.Dictionary
,因为您只传递一个字典。

缺少
If
语句的开头。有一个If语句,我在这里粘贴代码时错误地忽略了这一部分。这里有一个If语句。我在粘贴代码时错过了这一点。问题在于更新函数缺少
If
语句的开头。有一个If语句,我在将代码粘贴到此处时错误地忽略了该部分。有一个If语句。我在粘贴代码时错过了这一点。问题出在更新函数中。我有一份在c#中工作的代码副本。但是我无法编写vbscriptsomedll.Class crm=new somedll.Class()的正确语法;字典[]ar=新字典[1];crm.Login(“admin”、“admin99”、“Test”);Dictionary dc=新字典();dc.添加(“名称”、“名称”);dc.增加(“价值”、“abc”);ar[0]=dc;字符串sr=crm.CreateOrUpdateRecord(“Opportunities”,ref-ar,”);我知道,但我必须用vbscript转换代码。但我不知道我是如何提出两种可能的方法的。你试过其中任何一种吗?我有一份用c语言编写的代码。但是我无法编写vbscriptsomedll.Class crm=new somedll.Class()的正确语法;字典[]ar=新字典[1];crm.Login(“admin”、“admin99”、“Test”);Dictionary dc=新字典();dc.添加(“名称”、“名称”);dc.增加(“价值”、“abc”);ar[0]=dc;字符串sr=crm.CreateOrUpdateRecord(“Opportunities”,ref-ar,”);我知道,但我必须用vbscript转换代码。但我不知道我是如何提出两种可能的方法的。你有没有试过?