我正在查看另一个程序员在他调用存储过程的地方编写的一些代码。在调用它之前,他创建了一个数组,其中包含存储过程查询表所需的参数。他像这样创建数组:
param = Array("@Name", 3, 8, "Tom", _
"@Age", 3, 8, 28, _
"@City", 100, 200, "Toronto)
存储过程使用@Name、@Age 和@City 来查询表。
我的问题是,中间的数字是什么?
我正在查看另一个程序员在他调用存储过程的地方编写的一些代码。在调用它之前,他创建了一个数组,其中包含存储过程查询表所需的参数。他像这样创建数组:
param = Array("@Name", 3, 8, "Tom", _
"@Age", 3, 8, 28, _
"@City", 100, 200, "Toronto)
存储过程使用@Name、@Age 和@City 来查询表。
我的问题是,中间的数字是什么?
看起来像:
@Name = 参数名称
3 = adInteger
8 = 长度
“汤姆”=价值
@Age= 参数名称
3 = adInteger
8 = 长度
28 = 价值
@City= 参数名称
100 = 长度
200 = adVarChar
“多伦多=价值
这是其他 ADO 数据类型的列表 -
如果没有注释,就不可能确定或不单步执行代码。
否则,如果这是 asp.net,您可以做的最好的事情是查看SqlParameter
该类并查看它具有的属性:http:
//msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter。 aspx
我认为你有两个强有力的候选者ParameterName
and Value
,但是这两个数值可能是一些不同的东西。3
恰好是数值SqlDbType.Char
,而100
没有对应SqlDbType
的,该类型的默认值为NVarChar.
下一个数字可能是精度。查看数据库表,看看您是否可以将这些值与字段匹配。例如,是城市VarChar(200)
吗?
My guess is that he is using an array of params, just something like this: https://stackoverflow.com/a/10142254/2385, where I use an array of params to pass to a function who add the params to the ADO command.