【问题标题】:Classic ASP DB opening function does not work经典的 ASP DB 打开功能不起作用
【发布时间】:2008-11-19 17:55:07
【问题描述】:

我已经将一个在 windows server 2003 上运行的 Classic asp 站点转移到 windows server 2008 上,但是下面的代码突然停止工作。

Const connStr_FC08 = "Provider=SQLNCLI10;Server=DS-47500;Database=TestDB;Uid=TestLogin;Pwd=test;Network=dbmssocn;"

Function connDB(OpenDB)
    DIM conn
    SET conn = Server.CreateObject("ADODB.Connection")
    conn.open = connStr_FC08
    If OpenDB = "Y" Then conn.open
    connDB = conn
End Function

dim cn, cmd
cn = connDB("Y")
response.Write(cn.state)

这会返回以下错误

Microsoft VBScript runtime error '800a01a8' 

Object required: 'Provider=SQLNCLI10.1'

这发生在下面一行

response.write(cn.state)

谢谢 克里斯

【问题讨论】:

    标签: asp-classic windows-server-2008


    【解决方案1】:

    我发现您发布的代码存在一些可能的语法问题:

        ...
        conn.open = connStr_FC08
        ...
        connDB = conn
    ...
    cn = connDB("Y")
    

    是否应该更新为以下?

        ...
        conn.ConnectionString = connStr_FC08
        ...
        Set connDB = conn
    ...
    Set cn = connDB("Y")
    

    【讨论】:

      【解决方案2】:

      你的 SQL Provider 安装对了吗?

      您可以将该函数放入一个简单的 VBScript 脚本中进行测试,而无需更改任何页面。

      【讨论】:

        【解决方案3】:

        如果我从函数中打开连接并放入内联,则没有错误并且可以正常工作。

        但是我的整个网站都是通过使用这个函数来工作的,所以 a) 我不想重写我的代码 b) 我不明白为什么这在以前不起作用。

        【讨论】:

        • 这似乎不会奏效。 (请参阅 Mike Henry 的语法建议)也许它曾经“工作”,因为您打开了“On Error Goto Next”并且错误被隐藏了?此外,如果您的“整个网站都使用此功能工作”,为什么重写它会成为问题?为什么还要“重写”?您更改 2 行代码,您的整个站点将再次运行。 :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-20
        • 2017-06-21
        • 2017-05-23
        相关资源
        最近更新 更多