如果 sql 服务器没有加密,VB6 使用 encrypt=true 管理错误

VB6 using encrypt=true managing error if sql server has no encryption

我们使用的其中一个软件提供了启用加密的选项,这将反映在连接字符串的 ENCRYPT=YES 部分。

我的 vb6 应用程序中的连接字符串如下所示:

"Provider=SQLNCLI11;Server=(local);Database=MyDevDB;Uid=MySqlUser;Pwd=myPwd;
 Encrypt=yes;OLE DB Services=-1;"

当我的 Sql 服务器未配置为对来自 SQLCMD 和 SSMS 的连接字符串使用加密时,我收到错误

"Cannot connect to (local) [...] A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) (Microsoft SQL Server, Error: -2146893019)".

我的问题:为什么在我的 VB6 应用程序中使用 ADO 中的连接时没有出现相同的错误?

VB6 让我连接,当然不加密,没有任何警告。

有人知道我如何在 VB6 中捕获它吗?

非常感谢!

由于我自己没有从这个求助电话中得到真正的答案,下面是我如何处理 ADO 数据库连接中缺少可管理的警告或错误的情况。

我们完全删除了从 VB 6 代码中控制加密数据库连接的请求形式的可能性。

确实如此,因为,如果有任何问题(证书错误,Sql 服务器上无法加密,等等)VB 6 ADO(不是 .net)实际上并没有告诉我们,它不加密,我们不知道,从调用者的角度来看,我们没有明确的方式知道。

通过将连接加密的责任转移到 Sql 服务器,我们可以安全地进行操作。

直到我们从环境中删除 vb6。