使用D5中的TAdoConnection使用passworded sa帐户连接到Windows 7 64位计算机上的本地Sql Server,我收到错误“用户sa登录失败”,尽管事实上我已经构建了TAdoConnection ConnectionString包含密码。到BeforeConnect事件触发时,ConnectionString不再包含密码。我可以在WillConnect事件中设置密码,然后连接正常。
我的问题是,什么从ConnectionString中删除密码?是否可能在W7中添加了一些安全功能 - 我不记得在XP上遇到这个问题。
顺便说一句:即使我在ConnectionString中将Persist Security Info设置为true,这个问题仍然会发生 - 密码甚至不会存储在DFM中。
答案 0 :(得分:7)
您的ConnectionString需要包含“Persist Security Info = True”,请参阅此prior topic。我使用两个const,一个用于SQL身份验证,另一个用于Active Directory身份验证,只需填写空白。
const
csCONNECTION = 'Provider=%s;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s';
csADCONNECTION = 'Provider=%s;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=%s;Data Source=%s';