标签: asp-classic

Recordset过滤器的问题

我在传统的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)

vbscript ado filter recordset asp-classic

0
推荐指数
1
解决办法
1万
查看次数

"下标范围"错误(页面加载中的vbscript)

我的名字是埃德,我需要你的帮助.在我的经典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)

谢谢.

vbscript asp-classic

0
推荐指数
1
解决办法
3533
查看次数

经典的asp问题

我的.Asp文件存在此问题.我收到一条错误,说'GetFrontpageInfo'未定义.

这是代码:

http://www.kollelbaaleibatim.com/Content_of_asp_file.txt

单击"查看源"以查看代码.

TY

asp-classic

0
推荐指数
1
解决办法
796
查看次数

在.html文件中获取ASP以在IIS Windows XP上呈现

我在Windows XP下运行IIS.我有.html文件,其中包含经典的ASP内容.如何在这些.html文件中获取ASP以正确呈现?

iis windows-xp asp-classic

0
推荐指数
1
解决办法
274
查看次数

我仍然在ASP Legacy中编写Web应用程序 - 这个平台的现代替代品是什么?

嗨,谢谢你的阅读,

我仍然在经典ASP中编写Web应用程序,我想转向更现代的Web应用程序平台.哪些语言和框架提供了2011年经典ASP的合理迁移路径?

谢谢你的帮助,威尔

asp-classic

0
推荐指数
1
解决办法
1310
查看次数

加快页面加载速度

我有一个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)

sql arrays vbscript asp-classic

0
推荐指数
1
解决办法
208
查看次数

在Classic ASP页面上输出SQL查询

我在经典的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)

如何输出数量?

asp-classic

0
推荐指数
1
解决办法
8023
查看次数

为什么使用@Table变量导致应用程序中出现Adodb问题?

我有[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变量时会出现此错误?

sql t-sql sql-server adodb asp-classic

0
推荐指数
1
解决办法
1727
查看次数

是否可以在没有其他单引号的情况下逃避SQL Server中的单引号?

我们有一些经典的ASP页面连接到MS SQL服务器数据库.为了防止SQL注入,我们只需用双引号替换所有单引号.这似乎是这里规定的方法:http://www.4guysfromrolla.com/webtech/061902-1.shtml

这对我来说仍然很危险.有没有办法逃避任何其他角色的单引号,可能会打开SQL注入?

编辑:)我们目前有很多旧代码使用这个单引号来双倍单引号替换.如果这足以阻止SQL注入,那么我们不会改变任何东西.我真正的问题是这种方法是否不安全.

sql-server asp-classic

0
推荐指数
1
解决办法
3032
查看次数

经典ASP:在请求的名称或序号对应的集合中找不到项目

在我正在处理的经典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)

但现在我有错误 …

sql asp-classic

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

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