我在传统的ASP Classic代码中使用ADO Recordset上的过滤器时遇到了问题,而我正在尝试了解我是否不支持我正在尝试做什么,或者我是否只是做错了.
我有一个Items记录集,它们的状态为1(活动)或0(非活动),以及可选的End_Date.在我的管理用户界面中,我有一个控件来显示所有项目或仅显示应该显示给最终用户的项目:Status = 1 AND ( End_Date is null OR End_Date > Date() )
为了实现这个逻辑,我试过:
rs.Filter = "Status = 1 AND ( End_Date = null OR End_Date > #" & Date() & "# )"
Run Code Online (Sandbox Code Playgroud)
但我明白了
ADODB.Recordset (0x800A0BB9)
Unknown runtime error
Run Code Online (Sandbox Code Playgroud)
经过多次愚弄,似乎ADO不喜欢End_Date条件下的分组parens与AND条件相结合.如果我把parens拿出来,这有效:
rs.Filter = "Status = 1 AND End_Date = null OR End_Date > #" & Date() & "#"
Run Code Online (Sandbox Code Playgroud)
但这只是一个意外 - 它看起来像是按顺序评估过滤条件,所以我得到了我想要的结果.如果我将AND更改为OR,则parens工作:
rs.Filter = "Status = 1 OR ( End_Date = null OR End_Date > #" & Date() …Run Code Online (Sandbox Code Playgroud) 我的名字是埃德,我需要你的帮助.在我的经典ASP应用程序中页面加载时发生此错误:
Microsoft VBScript runtime error '800a0009' Subscript out of range: 'cont' /admin/cadastros_apz_material.asp, line 173
相关代码是:
do while not rs.eof
for i = 1 to tpp
if i = 1 then matriz(cont) = Rs("id_material_apv_produto") else matriz(cont) = matriz(cont) & "_" & rs("id_material_apv_produto")
rs.movenext: if rs.eof then exit do
next: cont = cont + 1
loop: set rs = nothing: if cint(pag) = 1 and ubound(matriz) >= 1 then id = matriz(1)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我的.Asp文件存在此问题.我收到一条错误,说'GetFrontpageInfo'未定义.
这是代码:
http://www.kollelbaaleibatim.com/Content_of_asp_file.txt
单击"查看源"以查看代码.
TY
我在Windows XP下运行IIS.我有.html文件,其中包含经典的ASP内容.如何在这些.html文件中获取ASP以正确呈现?
嗨,谢谢你的阅读,
我仍然在经典ASP中编写Web应用程序,我想转向更现代的Web应用程序平台.哪些语言和框架提供了2011年经典ASP的合理迁移路径?
谢谢你的帮助,威尔
我有一个2D数组,其中填充了数据库中的数据,然后在while循环中使用另一个sql查询.对于while循环中的每个项目,我使用for循环检查2d数组中的某些项目.
我如何加快速度,因为while循环中的项目在1000 - 2000项内,加载网页需要3-4秒.
这是我的2D阵列 -
'MultiDimensional Array
Dim permissionsArray()
Dim permissionsCount
connectionstring = obj_ADO.getconnectionstring
Increment = 1
set c = CreateObject("ADODB.Connection")
set r = CreateObject("ADODB.Recordset")
c.open connectionstring
SQL = "select Count(P_Name) as permissionsCount from l_objectpermission inner join A_Permission on op_permissionID = P_permissionID"
r.open SQL, c
permissionsCount = r("permissionsCount")
r.close
c.close
Set objCon = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
objCon.Open connectionstring
SQL = "select OP_ObjectID, P_Name from l_objectpermission inner join A_Permission on op_permissionID = P_permissionID order by P_Name"
objRS.open SQL, …Run Code Online (Sandbox Code Playgroud) 我在经典的asp页面上运行以下查询.
sSQL = "Select ProductID, SUM(Quantity) FROM OrderDetails Where CAST(orderDate AS DATE) Between '"&sStartDate&"' And '"&sEndDate&"' GROUP BY ProductID"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sSQL, cnn, adOpenStatic, adLockReadOnly, adCmdText
<tr>
<td>
<%Response.Write(rs.Fields("ProductID"))%>
</td>
<td>
What is the code to get the sum of the quantity here?
</td>
Run Code Online (Sandbox Code Playgroud)
如何输出数量?
我有[MySp],一个存储过程.
所以检查一下..当我运行它时它工作:
SELECT ID,Name FROM Table
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我在应用程序端出现错误(Adodb)
Declare @Table TABLE(ID int,Name varchar(10))
--- Inserts into table variable ---
INSERT INTO @Table
SELECT ID,Name FROM Table
--- Returns data from table variable ---
SELECT ID,Name FROM @Table
Run Code Online (Sandbox Code Playgroud)
请记住,在SQL控制台中我得到[MySp]的相同结果,但在application/adodb代码中我得到错误.
ASP代码:
Set oRS = Server.CreateObject("Adodb.Recordset")
oRS.Open "[MySp]", Conn
If oRS.EOF Then... <--Gives an error
ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么我在SQL中使用Table变量时会出现此错误?
我们有一些经典的ASP页面连接到MS SQL服务器数据库.为了防止SQL注入,我们只需用双引号替换所有单引号.这似乎是这里规定的方法:http://www.4guysfromrolla.com/webtech/061902-1.shtml
这对我来说仍然很危险.有没有办法逃避任何其他角色的单引号,可能会打开SQL注入?
编辑:)我们目前有很多旧代码使用这个单引号来双倍单引号替换.如果这足以阻止SQL注入,那么我们不会改变任何东西.我真正的问题是这种方法是否不安全.
在我正在处理的经典ASP网站中,我需要获取当前网站所有者的ID,以便将Excel中的电子邮件列表导出到该用户.我在SQL行上遇到了主题中提到的错误.我无论如何都无法获得身份证.当我输入一个与数据库中的ID相对应的数字时,数据被拉得很好.我不知道该怎么WHERE ID =做才能完成这项工作
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = " & rs("ID")
rs.Open SQL, conn, AdOpenStatic, AdLockPessimistic
If NOT rs.EOF then
%>
<textbox value="<% = rs("ID") %>"><% = rs("storeNumber") & " - " & rs("siteOwner") %></textbox>
<%
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>
Run Code Online (Sandbox Code Playgroud)
我不确定该怎么做,因为我通常不会在经典的asp中工作,这个网站很久很久以前写过.
当我在SQL Server中使用该SQL语句并将rs("ID")替换为"1"时,该语句运行正常.有谁可以帮助我吗?我找不到任何似乎有帮助的东西.
更新的SQL TO
SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = ?
Run Code Online (Sandbox Code Playgroud)
但现在我有错误 …
asp-classic ×10
sql ×3
vbscript ×3
sql-server ×2
ado ×1
adodb ×1
arrays ×1
filter ×1
iis ×1
recordset ×1
t-sql ×1
windows-xp ×1