【发布时间】:2016-02-17 09:49:34
【问题描述】:
我希望有人可以让我对我的 vb 脚本有所了解。这个脚本的主要目的是使用一些参数来执行一个存储过程。
我得到的错误是
'预期语句结束'
我没有编写过多的 VB 脚本,但从我目前发现的情况来看 - 此错误已归结为某种语法问题。我已经查看了这个脚本好几个小时,看不到任何明显的东西。我只能假设它归结为adArray 的声明(在我看来这看起来不对,但我找不到任何声明的例子)。只有在我开始添加更多参数时才引入此错误。
代码:
Const adVarChar = 200
Const adParamInput = 1
Const adArray = 0x2000
Dim cmd
Dim sp
Dim intCode
Dim addIn
Dim groupCode
Dim screens
Dim arrScreens
arrScreens=split(LF06,",")
Set cmd=CreateObject("ADODB.Command")
sp="vfile_dev.dbo.vfp_groupReorder"
Set intCode=CreateObject("ADODB.Parameter")
intCode.Direction=adParamInput
intCode.name="@p_intCode"
intCode.Size=100
intCode.Type=adVarChar
intCode.Value=LF03
Set addIn=CreateObject("ADODB.Parameter")
addIn.Direction=adParamInput
addIn.name="@p_addIn"
addIn.Size=100
addIn.Type=adVarChar
addIn.Value=LF04
Set groupCode=CreateObject("ADODB.Parameter")
groupCode.Direction=adParamInput
groupCode.name="@p_groupCode"
groupCode.Size=100
groupCode.Type=adVarChar
groupCode.Value=LF05
Set screens=CreateObject("ADODB.Parameter")
screens.Direction=adParamInput
screens.name="@p_screens"
screens.Size=100
screens.Type=adArray
screens.Value=arrScreens
With cmd
.ActiveCOnnection = "Provider='sqloledb';Data source='xxx';Integrated Security='SSPI';"
.CommandType = 4
.CommandText = sp
.Parameters.Append intCode
.Parameters.Append addIn
.Parameters.Append groupCode
.Parameters.Append screens
.Execute
End With
Set cmd = Nothing
Set sp = Nothing
Set intCode = Nothing
Set addIn = Nothing
Set groupCode = Nothing
任何帮助将不胜感激。谢谢。
编辑:
对于那些感兴趣的人 - 我的解决方案是放弃 adArray 并将我的数据作为逗号分隔的 varchar 传递。然后我使用简单的拆分函数在我的存储过程中处理这些数据。
【问题讨论】:
-
SQL Server 是否支持
screens.Type=adArray?这是整个脚本吗? -
究竟是哪一行引发了错误?
-
这是一个有用的资源,我已经使用了很长时间,因为我的 ADO Data Type Bible 我很确定
adArray在 ADO 中不受支持,并且是为了将来的兼容性而添加的。跨度> -
我认为它会被支持?是的,这就是整个脚本.. 至少是它的 VBscript 方面。 (LFXX 变量在脚本之外声明并传入)。
标签: sql-server vbscript oledb ado adodb