0

我正在查看另一个程序员在他调用存储过程的地方编写的一些代码。在调用它之前,他创建了一个数组,其中包含存储过程查询表所需的参数。他像这样创建数组:

param = Array("@Name", 3, 8, "Tom", _
            "@Age", 3, 8, 28, _
            "@City", 100, 200, "Toronto)

存储过程使用@Name、@Age 和@City 来查询表。

我的问题是,中间的数字是什么?

4

3 回答 3

2

看起来像:

@Name = 参数名称

3 = adInteger

8 = 长度

“汤姆”=价值

@Age= 参数名称

3 = adInteger

8 = 长度

28 = 价值

@City= 参数名称

100 = 长度

200 = adVarChar

“多伦多=价值

这是其他 ADO 数据类型的列表 -

http://www.w3schools.com/ado/ado_datatypes.asp

于 2012-05-04T20:41:14.670 回答
0

如果没有注释,就不可能确定或不单步执行代码。

否则,如果这是 asp.net,您可以做的最好的事情是查看SqlParameter该类并查看它具有的属性:http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter。 aspx

我认为你有两个强有力的候选者ParameterNameand Value,但是这两个数值可能是一些不同的东西。3恰好是数值SqlDbType.Char,而100没有对应SqlDbType的,该类型的默认值为NVarChar.

下一个数字可能是精度。查看数据库表,看看您是否可以将这些值与字段匹配。例如,是城市VarChar(200)吗?

于 2012-05-04T20:42:53.833 回答
0

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.

于 2012-05-05T14:47:40.027 回答