【发布时间】:2026-02-20 19:40:01
【问题描述】:
下面是ASP页面,这个页面的onload我需要执行一个存储过程。我需要将一个参数传递给这个存储过程。我从会话中获得的这个参数的值。存储过程应该将记录插入表中,我不需要它返回任何值。 无论我做什么,我都无法从 ASP 页面执行它。请帮忙。 我在这里做错了什么?
<% @Language=VBScript %>
<%Response.Buffer = true%>
<html>
<head>
</head>
<body>
<!--#include file = "connect.txt" -->
<!--#include file= "adovbs.inc" -->
<%
Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
'this will be my parameter
Dim strID
strID = Session("ID")
ConnectionStr = "Provider=SQLOLEDB;Server=***;Database=***;Uid=***;Pwd=***;"
conn.Open ConnectionStr
With cmd
.ActiveConnection = conn
.CommandType = adCmdStoredProc
.CommandText = "sp_Application_Insert"
.Parameters.Append cmd.CreateParameter("@TUID ", adVarchar, adParamInput, 200, strID)
.Execute
End With
Set cmd = Nothing
conn.close
%>
</body>
</html>
【问题讨论】:
-
人家还在写经典的asp代码?马修飓风是否让我们陷入了时间扭曲?我不是要刻薄......现在这是恐龙技术。
-
@granadaCoder 是的......有些人仍然这样做。当然有些人还在使用 sql server 2000(甚至更早的版本)。这并不意味着这是一件好事。 :)
-
稍微绕开这个问题。您确实应该避免使用 sp_ 前缀,或者更好的是,完全避免使用该前缀。 sqlperformance.com/2012/10/t-sql-queries/sp_prefix
-
为了一切正常,您需要更改连接包含文件的文件扩展名,因为大多数网站通常允许使用 txt 扩展名。这意味着有人得到一个列出您的网络服务器的文件,除非您明确禁止将 txt 扩展名作为允许的文件类型,否则您的网络服务器将尽职地将该文件提供一个 http 附件。将其更改为默认禁止的.inc。
-
你怎么知道它没有执行?您是否在 sql server 上运行了配置文件会话?该表上是否有一个触发器可能由于错误而静默回滚插入?
标签: sql-server stored-procedures vbscript asp-classic