经典ASP的global.asa SQL Server 2008中的连接字符串(Classic AS

2019-10-23 09:34发布

我一直在考虑从Windows 2003服务器(SQL Server 2000和IIS 6)写在传统的ASP到端口的Web应用程序到Windows 2008服务器(SQL Server 2008和IIS 7.5)。

该网站使用GLOBAL.ASA文件来定义全局变量,其中之一是连接字符串( cnn )连接到SQL Server。

下面是从(旧)连接字符串GLOBAL.ASA

Sub Application_OnStart
    Dim cnnDem, cnnString
    Set cnnDem = Server.CreateObject("ADODB.Connection")
    cnnDem.CommandTimeout = 60
    cnnDem.Mode = admodeshareexclusive
    cnnString = "Provider=SQLOLEDB; Data Source=192.xxx.x.xx; User  Id=xxxx; Password=xxxxx; default catalog=xxxxxxx;"
    Application("conString")=cnnString
    Call cnnDem.Open(cnnString)
    Application("cnn") = cnnDem
End Sub

.ASP页面然后使用cnn值是这样的:

strSQL = "Select * From tblUtilities order by companyname"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Application("cnn"), adOpenKeyset

但是我不能让连接字符串连接 - 我又缩减到一个“登录失败”错误信息(不管我试了一下登录ID)。

我编辑的GLOBAL.ASA文件,如下所示,它的工作原理。

Sub Application_OnStart
    Dim cnnDem, cnnString
    Set cnnDem = Server.CreateObject("ADODB.Connection")
    cnnDem.CommandTimeout = 60
    cnnString = "Provider=SQLNCLI10.1;User Id=xxxx; Password=xxxxx;Initial Catalog=xxxxxxx;Data Source=xxxxxx\SQLEXPRESS;"
    Application("conString")=cnnString
    Application("cnn")=cnnString
    Call cnnDem.Open(cnnString)
End Sub

主要的区别是, cnn现在包含连接字符串,其中如先前cnn是参照对象ADOBD.Connection

我的问题是什么样的影响(如有)将在对应用程序。 我已经做了一些基本的(本地)的测试,一切看起来正常的时刻。 但我想知道是否有可能是多用户的问题(或类似这种事情)时,该网站再次部署可能出现的。

Answer 1:

我一直在Global.asa中的连接字符串,但在创建根据需要加载一个独立的功能连接。 一个应用程序的连接对象可能不知道的是可以关闭该连接,然后以后尝试使用该连接不会成功暂时性的网络问题。

希望这是有道理的。



Answer 2:

其中一个连接到创建数据库连接字符串的最好和最简单的方法是折痕的根目录或其他地方一个新的ASP文件,并在连接字符串到它:

//Global.asp //

<%
Dim connectionString
connectionString = "PROVIDER=SQLOLEDB;DATA SOURCE=YourSQLServer;UID=sa;PWD=*******;DATABASE=YourDataBase"
%>

然后创建一个包括在每一个你想调用这个连接文件的语句。

<!-- #include virtual="global.asp" -->

然后,你需要设置你的连接呼叫,只需使用你的代码连接到数据库:

<%
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open =   ConnectionString
Set rsReports = Server.CreateObject("ADODB.Recordset")
strSQL = "Select * From Customers"
rsReports.Open strSQL, adoCon
%>


文章来源: Classic ASP global.asa SQL Server 2008 connection string