Классическая функция открытия БД ASP не работает - PullRequest
0 голосов
/ 19 ноября 2008

Я перенес классический asp-сайт, работающий на Windows Server 2003, на 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)

Спасибо Chris

Ответы [ 3 ]

2 голосов
/ 22 ноября 2008

Я вижу несколько возможных проблем синтаксиса с кодом, который вы разместили:

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

Должно ли оно быть обновлено до следующего?

    ...
    conn.ConnectionString = connStr_FC08
    ...
    Set connDB = conn
...
Set cn = connDB("Y")
0 голосов
/ 19 ноября 2008

Если я возьму открытие соединения из функции и вставлю его в линию, то ошибки не будет, и она будет работать.

Но весь мой сайт работает с использованием этой функции, так что а) я не хочу переписывать свой код и б) я не понимаю, почему это не работает, когда раньше.

0 голосов
/ 19 ноября 2008

У вас установлен этот SQL-провайдер, верно?

Вы можете поместить эту функцию в простой сценарий VBScript для тестирования, не изменяя своих страниц.

...