64位系统下动网论坛数据库连接的问题


最近刚刚安装了windows server 2003 r2 64位系统,并且安装了sql server 2005 64位版本。别的网站基本上不用改什么就可以直接运行。但是动网论坛却一直报错:




修改conn.asp文件,打印错误出来
Sub ConnectionDatabase
    Dim ConnStr
    If IsSqlDataBase = 1 Then
        ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
    Else
        ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(MyDbPath & db)
    End If
    On Error Resume Next
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open ConnStr
    If Err Then
           Response.Write err.description
        err.Clear
        Set Conn = Nothing
        Response.Write "数据库连接出错,请检查连接字串。"'注释,需要把这几个字翻译成英文。
        err.Clear
        Response.End
    End If
End Sub

运行结果报错内容:未指定提供程序,也没有指派的默认提供程序。数据库连接出错,请检查连接字串。



看来这个连接串有问题,和64位系统无法兼容。但是我的asp.net程序都正常,和数据库连接正常。查找我的.net程序中连接串如下:
"Server=?????;Database=???;Uid=???;pwd=????;"

于是修改动网论坛conn.asp文件:
Sub ConnectionDatabase
 Dim ConnStr
 If IsSqlDataBase = 1 Then
     ConnStr = "PROVIDER=SQLOLEDB;DATA SOURCE="&SqlLocalName&";UID="&SqlUsername&";PWD="&SqlPassword&";DATABASE="&SqlDatabaseName
 Else
  ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(MyDbPath & db)
 End If
 On Error Resume Next
 Set conn = Server.CreateObject("ADODB.Connection")
 conn.open ConnStr
 If Err Then
  err.Clear
  Set Conn = Nothing
  Response.Write "数据库连接出错,请检查连接字串。"'注释,需要把这几个字翻译成英文。
  err.Clear
  Response.End
 End If
End Sub

修改后运行正常:

posted @ 2006-06-22 13:24  夕阳武士  阅读(1484)  评论(2编辑  收藏  举报