Error handling 如果sql server没有加密,则VB6使用encrypt=true管理错误

Error handling 如果sql server没有加密,则VB6使用encrypt=true管理错误,error-handling,vb6,adodb,Error Handling,Vb6,Adodb,我们使用的一个软件提供了启用加密的选项,这将反映在连接字符串的ENCRYPT=YES部分 我的vb6应用程序中的连接字符串如下所示: "Provider=SQLNCLI11;Server=(local);Database=MyDevDB;Uid=MySqlUser;Pwd=myPwd; Encrypt=yes;OLE DB Services=-1;" 当我的Sql server没有配置为在连接字符串上使用加密时,从SQLCMD和SSMS,我得到一个错误 “无法连接到(本地)[…]已成功与服务

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

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

"Provider=SQLNCLI11;Server=(local);Database=MyDevDB;Uid=MySqlUser;Pwd=myPwd;
 Encrypt=yes;OLE DB Services=-1;"
当我的Sql server没有配置为在连接字符串上使用加密时,从SQLCMD和SSMS,我得到一个错误

“无法连接到(本地)[…]已成功与服务器建立连接,但在登录过程中发生错误。(提供程序:SSL提供程序,错误:0-证书链是由不受信任的机构颁发的。)(Microsoft SQL server,错误:-2146893019)”

我的问题:
VB6
应用程序中使用
ADO
中的连接时,为什么没有收到相同的错误

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

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


非常感谢

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

我们只是完全排除了从VB6代码中控制加密db连接请求形式的可能性

事实上,如果有任何东西不起作用(坏证书、Sql Server上不可能加密等等),VB6ADO(不是.net)实际上没有告诉我们,它没有加密,我们也不知道,我们也没有从调用方的角度清楚地知道

通过将连接加密的责任转移到Sql server,我们可以确保安全


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

问题是为什么ADO中不会出现这种情况,而在使用其他方法时会出现这种情况?或者,问题是如何检测和处理这种情况?您提到,这在使用ADO时不会导致问题-当它确实导致问题时,您使用的是什么?实际上,我想从我的帖子中得到的是:我希望当用户选中“加密”时,连接调用失败以获得与SQLCMD相同的行为。因为现在,用户选择了“加密”,它仍然连接,并且没有加密。到目前为止,我还没有解决我的问题,仍然无法解决这个问题。连接成功真奇怪,是的。