我最近将数据库从 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] 提供商
提供商=MSDASQL.1;密码=logmein;持久安全信息=True;用户ID=sa;扩展属性=“DSN=NET-BRAIN;UID=admin;PWD=mudslinger;APP=Microsoft®Windows®操作系统;WSID= BPOOR-16D68FBC7D;DATABASE=DB_App;网络=DBMSSOCN";初始目录=DB_App
这是使用相同的 UL 文件SQL 本机提供程序:
"Provider=SQLNCLI10.1;集成安全性="";持久安全信息=False;用户 ID=admin;初始目录=DB_APP;数据源=NET-BRAIN;初始文件名="";服务器 SPN="""
--收到错误:Ado 调用出错... Class_clasAdoFnx_initialize 中出错 3001 参数类型错误、超出可接受范围或相互冲突。
--错误:Class_clsAdoFnx_Initialize
3709 请求的操作需要 OLE DB 会话对象,当前提供程序不支持该对象。
尝试了 [oledb] 作为 sql server 提供程序选项“提供商= SQLOLEDB.1;密码= mudslinger;持久安全信息= True;用户ID = admin;初始目录= db_app;数据源= net-brain”
错误:-2147217900 用户“admin”登录失败
更新2:隔离打开的连接字符串后,结果发现连接正在打开,而我用来测试的存储过程失败了。