Sql VB6 ADO ConnectionString属性与;或;作为价值观

Sql VB6 ADO ConnectionString属性与;或;作为价值观,sql,vb6,ado,Sql,Vb6,Ado,我必须支持用VB6编写的旧组件。 组件具有通过ADO记录集访问数据库的方法 现在,当我发现有人在密码中使用分号时,我遇到了一个错误。 由于分号是保留字符,因此需要对其进行转义 找到此资源: 和 因此,我尝试添加以下代码: Private Function MaskString(ByVal p_sVal) Dim l_sString As String Dim l_sQuote As String l_sQuote = """" l_sString = p_sVal If I

我必须支持用VB6编写的旧组件。 组件具有通过ADO记录集访问数据库的方法

现在,当我发现有人在密码中使用分号时,我遇到了一个错误。 由于分号是保留字符,因此需要对其进行转义

找到此资源: 和

因此,我尝试添加以下代码:

Private Function MaskString(ByVal p_sVal)
  Dim l_sString As String
  Dim l_sQuote As String
  l_sQuote = """"
  l_sString = p_sVal
  If InStr(1, l_sString, """") > 0 Then l_sQuote = "'"
  If InStr(1, l_sString, ";") > 0 Then l_sString = l_sQuote & l_sString & l_sQuote
  MaskString = l_sString
End Function
我为每个值调用这个函数,最后的连接字符串如下:

provider=sqloledb;database=data_base_name;server=server_name;uid=sa;pwd="test;password"
用法如下:

AdoConnection.ConnectionTimeout = lConnectionTimeout
AdoConnection.ConnectionString = strConnectionString
AdoConnection.Open
然而,现在这似乎是正确的,但是VB6 Ado现在给我以下错误:

Method OpenDB: -2147467259 - Ungültiges Attribut für die Verbindungszeichenfolge - Microsoft OLE DB Provider for SQL Server
(英语可能类似-连接字符串的属性无效-)


所以旧的VB6不支持这个?或者我该如何转义这些保留字符呢?

如果您使用chr(59)传递分号,可能会有所帮助?还要注意双引号

Connection string = "provider=sqloledb" & chr(59) & "database=data_base_name" & chr(59) & "server=server_name" & chr(59) & "uid=sa" & chr(59) & "pwd="""test" & chr(59) & "password"""

尝试使用
Password
关键字而不是
pwd

provider=sqloledb;database=data_base_name;server=server_name;uid=sa;Password="test;password"

这不会有什么区别,结果是一个包含分号的字符串。您可以使用
AdoConnection.Open strConnectionString、strUserID、strPassword