小编典典

vb6到SQL Server 2008的ADODB连接字符串

sql

我最近将数据库从sql server 2005迁移到Windows Server 2008上的2008。客户端从XP计算机连接正常,SQL
Management Studio 2008也是如此。我还测试了使用LINQPad的远程连接,该连接工作正常。

但是在我的VB6应用程序上,连接字符串似乎给我带来了问题。有什么想法我做错了吗?

    Dim strUserName As String
     Dim strPassword As String
     Dim sProc As String

     sProc = "Class_clsAdoFnx_Initialize"

        Me.DatabaseName = "db_app"




 'Connect to SQL Server

    strUserName = "admin"
    strPassword = "mudslinger"

    Set cSQLConn = New ADODB.Connection
    '**Original connection String
    'cSQLConn.CommandTimeout = 0
    'cSQLConn.ConnectionString = " PROVIDER=SQLOLEDB" & _
    '    ";SERVER=NET-BRAIN" & _
    '    ";UID=" & strUserName & _
    '    ";PWD=" & strPassword & _
    '    ";DATABASE=" & Me.DatabaseName

    '***First attempt, no dice
    'cSQLConn.ConnectionString = "Provider=sqloledb;" & _
    '       "Data Source=NET-BRAIN;" & _
    '       "Initial Catalog=DB_APP;" & _
    '       "User Id=admin;" & _
    '       "Password=mudslinger"
    'cSQLConn.Open

    '***3rd attempt, no dice 
    cSQLConn.Open "Provider=sqloledb;" & _
           "Data Source=NET-BRAIN;" & _
           "Initial Catalog=db_app;" & _
           "User Id=admin;" & _
           "Password=mudslinger", "admin", "mudslinger"

提前致谢。

更新:这是我使用test.UL文件生成的字符串

[ODBC]提供程序

Provider = MSDASQL.1; Password = logmein; Persist Security Info = True; User
ID = sa; Extended Properties =“ DSN = NET-BRAIN; UID = admin; PWD =
mudslinger; APP =Microsoft®Windows®Operating System; WSID = BPOOR-16D68FBC7D;
DATABASE = DB_App; Network = DBMSSOCN“;初始目录= DB_App

这是使用 SQL Native provider 的相同UL文件:

“ Provider = SQLNCLI10.1;集成安全=”“;持久安全信息= False;用户ID = admin;初始目录= DB_APP;数据源=
NET-BRAIN;初始文件名=”“;服务器SPN =”“

-收到错误:Ado调用中的错误… Class_clasAdoFnx_initialize 3001中存在错误。参数类型错误,超出可接受范围或彼此冲突。-错误:Class_clsAdoFnx_Initialize 3709请求的操作需要OLE DB会话对象,当前提供程序不支持该对象。

尝试对SQL Server提供程序选项 “ [提供程序] = SQLOLEDB.1;密码= mudslinger;持久性安全信息=真实;用户ID =
admin;初始目录= db_app;数据源= net-brain”的 [oledb]

错误:-2147217900用户’admin’登录失败

UPDATE2: 隔离打开的连接字符串后,事实证明连接正在打开,而我用来测试的存储过程失败了。


阅读 195

收藏
2021-04-28

共1个答案

小编典典

将ADO与SQL Server Native Client结合使用以启用SQL Server Native
Client
的使用之后,ADO应用程序将需要在其连接字符串中实现以下关键字:

Provider = SQLNCLI10
DataTypeCompatibility = 80

Dim con As New ADODB.Connection

con.ConnectionString = "Provider=SQLNCLI10;" _
         & "SERVER=NET-BRAIN;" _
         & "Database=DB_APP;" _ 
         & "DataTypeCompatibility=80;" _
         & "User Id=admin;" _
         & "Password=mudslinger;"

con.Open
2021-04-28