我有一个为当前用户设置变量的函数。变量名称以模块名称为前缀——基本上,应用程序的设置方式,Client 是一个类,Server 是一个类,Agency 是一个类等等。这是一种尝试创建一个系统,通过该系统,我们可以通过 200 多台服务器,通过尽可能少的点击并使用其数据库中的实时数据,找到有关客户或其网站的任何关键信息。
功能如下:
public sub setVariable(varName, varValue)
varValue = cstr(varValue)
def = ""
if varValue = "" then def = "1"
response.write vbcrlf & "Variable: " & varName & " : " & varValue & vbcrlf
if not cstr("" & getVariable(varName, def)) = cstr("" & varValue) then
response.write vbcrlf & varName & " : " & varValue & vbcrlf
prepend varName, "Module." & Name & "."
response.write vbcrlf & varName & " : " & varValue & vbcrlf
session(varName) = varValue
Core.RunSproc "SetUserVariable", array("@name", "@value"), array(varName, cstr(varValue)), setVar
end if
end sub
现在在第 5 行,它是第一次输出,只有“ID”作为变量名输出。但是 2 行后,名称设置为“Module.<module-name>.ID”(例如 Module.Server.ID。2 行之后,在 prepend 语句之后(其作用与 do 相同varName = "something" & varName
),它输出something + "Module.<module-name>.ID"
.实际上,在这种情况下,它输出"Module.Server.Module.Server.ID"
。请注意,如果我取出任何东西,它会从第一个 Module.Server 中取出,而不是第二个。有谁知道是什么原因造成的?看起来好像是 Module.Server 。服务器被添加到第 5 行和第 7 行之间的变量名称之前,但唯一的一行是 if 语句。提前致谢。