|
如何在 Active Server Page 中访问 SQL Server适用于 概要 本文介绍了如何使用“ActiveX 数据对象”(ADO) 在 ASP 脚本中建立到 SQL Server 的连接,同时利用 ODBC 3.0 的连接池功能。
更多信息 连接池启用 ODBC 连接池。 有关连接池的其他信息以及有关如何启用连接池功能的说明,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 164221 如何在 ODBC 应用程序中启用连接池 ODBC DSN使用“ODBC 管理器”,在 Microsoft Internet Information Server (IIS) 安装在的计算机上创建一个“系统”数据源名称 (DSN)。一次指定连接属性,然后在每个页面上重复使用此属性。例如,在 Global.asa 文件的 Session_OnStart 事件中,将连接属性定义为: Session("ConnectionString") = "dsn=SQLSysDSN;uid=<username>;" & _ "pwd=<strong password>;DATABASE=pubs;APP=ASP Script" 确保下列所有条件都满足: - “系统 DSN”定义中没有选中受信任连接框。
- SQL Server 安全模式不是“Windows NT 集成”。
- 在连接属性中,uid 不为空。
否则,到 SQL Server 的连接可能会失败,并收到以下错误信息:
Microsoft OLE DB provider for ODBC Drivers error ''''80004005'''' [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed- User:_ Reason:Not defined as a valid user of a trusted SQL Server connection. Global.asa是否使用 Global.asa 文件是可选的。在其位置上,通常由此文件创建的项目可以放到应用程序调用的第一页上。假定 ASP 脚本位于一个文件夹中,该文件夹在“Internet 服务管理器”中没有定义为虚拟目录,而是位于另一个虚拟目录下面,那么,包含 Session 变量和 DSN 定义的 Global.asa 文件就必须保留在此虚拟目录中。否则,将出现以下错误信息: Microsoft OLE DB Provider for ODBC Drivers error ''''80004005'''' [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified ASP 脚本中的连接通过打开和关闭到每个 Active Server Page 上的数据库的连接来利用连接池。要打开此连接,请在页面的 <Body> 部分中键入以下语句: <% Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.Open Session("ConnectionString") %> 要关闭此连接,请将以下内容放到 </Body> 标记后: <% OBJdbConnection.Close Set OBJdbConnection = Nothing %> 如果没有象本文前面介绍的那样正确定义连接设置,您可能会收到以下两条错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''''80004005'''' [Microsoft][ODBC SQL Server Driver][DBNMPNTW]Connection broken. - 或 - Microsoft OLE DB Provider for ODBC Drivers error ''''80004005'''' [Microsoft][ODBC SQL Server Driver]Communication link failure 此处是一个包含 Global.asa 和 Authors.asp 文件的示例应用程序。此示例应用程序将返回名为 authors 的 pubs 表中的四列和所有记录。
注意:您必须先将 UID <用户名> 和 pwd =<强密码> 更改为正确的值,然后才能运行此代码。请确保该 UID 具有在数据库中执行此操作所需的适当权限。
Global.asa <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart Session("ConnectionString") = "DSN=SQLSysDSN;UID=<username>;PWD=<strong password>;" & _ "DATABASE=pubs;APP=ASP script" Session("ConnectionTimeout") = 15 Session("CommandTimeout") = 30 End Sub Sub Session_OnEnd End Sub </SCRIPT> Authors.asp <HTML> <HEAD> <TITLE>All Authors</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <% Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.ConnectionTimeout = Session("ConnectionTimeout") OBJdbConnection.CommandTimeout = Session("CommandTimeout") OBJdbConnection.Open Session("ConnectionString") Set SQLStmt = Server.CreateObject("ADODB.Command") Set RS = Server.CreateObject ("ADODB.Recordset") %> <p> <table border="0" bordercolor="#000000"> <% SQLStmt.CommandText = "select * from authors" SQLStmt.CommandType = 1 Set SQLStmt.ActiveConnection = OBJdbConnection RS.Open SQLStmt Do While Not RS.EOF %> <TR> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("au_id") %> </FONT></TD> <TD></TD> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("au_lname") %> </FONT></TD> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("au_fname") %> </FONT></TD> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("phone") %> </FONT></TD> </TR> <% RS.MoveNext Loop %> </table> <hr> <p> </BODY> <% OBJdbConnection.Close Set OBJdbConnection = Nothing %> </HTML> 有关 Active Server Pages 的更多信息,请参见 IIS 服务器上 ASP 安装程序提供的路径图 (Roadmap)。 参考有关 Microsoft Visual Basic .NET 编码技术的更多信息,请访问以下 Web 站点: http://www.microsoft.com/mspress/books/4909.asp Coding Techniques for Microsoft Visual Basic .NET(Microsoft Visual Basic .NET 编码技术) Connell, John Microsoft Press, 2001.
如果您没有看到您问题的答案,请访问 Microsoft SQL Server 新闻组,地址是: Microsoft SQL Server Newsgroups(Microsoft SQL Server 新闻组)
如果您想对本文或其他 Microsoft SQL Server 知识库文章发表评论,请给我们发邮件,地址是 Q169377 这篇文章中的信息适用于: - Microsoft SQL Server 2000 (all editions)
- Microsoft SQL Server 7.0
- Microsoft SQL Server 6.5
- Microsoft SQL Server 6.0
- Microsoft SQL Server 4.2x
- Microsoft Internet Information Server 4.0
- Microsoft Internet Information Server 3.0
- Microsoft Internet Information Server 5.0
最近更新: 2004-5-31 (5.0) 关键字: kbenv kbhowto kbinterop kbtshoot KB169377 kbAudDeveloper
[电脑技术]HP打印复印机出现Jam in print pager path和op… [聊天工具]企业邮件系统的利器----FoxMail Server [系统软件]如何在Linux系统上进行快速磁带备份 [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜 [系统软件]关于Windows2000Server的灾难恢复 [常用软件][网络]下载服务革命性风暴Poco Server评测 [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信… [C语言系列]SQL Server到DB2连接服务器的实现 [C语言系列]SQL Server到SYBASE连接服务器的实现 [C语言系列]SQL Server到SQLBASE连接服务器的实现
|