【发布时间】:2021-11-26 18:19:14
【问题描述】:
我希望通过从 Recordset(或数组)动态创建这些常量来用 ~ 25 个声明的常量替换包含文件。我尝试循环遍历记录集,也尝试填充二维数组,然后尝试从数组值中设置这些常量,但它似乎采用“常量”文字之后的内容而不是值。
If (not rsVars.Eof) Then
cCount = rsVars.RecordCount
ReDim cArray(cCount - 1, 1)
For i = 0 To cCount - 1
cArray(i, 0) = rsVars("VariableNm")
cArray(i, 1) = rsVars("Value")
rsVars.MoveNext
Next
End If
For i = 0 To cCount - 1
' Display the Array Elements - WORKS and Displays All Variables and Desired Values
Response.write "("&(i+1)&") " & cArray(i, 0) & " = " & cArray(i, 1) & "<br>"
' Attempt to set Constant Variables - this next line errors - "Name_redefined"
Const cArray(i, 0) = cArray(i, 1)
Next
【问题讨论】:
-
常量就是那个常量,允许它们被一个变量值设置就达不到目的了。
-
我不推荐它,但您可以使用
ExecuteGlobalstatement 设置它们,方法是传递一个动态构建的字符串,然后将其解释为代码。 -
这能回答你的问题吗? Windows VBScript - Executing code with Eval
-
您可以创建一个字典 (
Server.CreateObject("Scripting.Dictionary") 并将其添加到Application对象并在整个应用程序中使用它。 -
或者,可以在应用程序启动时创建 inc 文件,并将这些文件包含在需要的页面中。 @user692942:这取决于有多少记录。
标签: arrays asp-classic constants