连接字符串中的转义空间

时间:2013-03-20 15:45:45

标签: sql sql-server delphi ado

我正在尝试使用ADO连接到SQL Server数据库。密码包含一个空格作为最后一个字符。构建连接字符串时,如何转义密码?

MSDN表示将其用单引号或双引号括起来,但这似乎不起作用......

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

这就是我的连接字符串:

Provider=SQLOLEDB;Persist Security Info=False;Initial Catalog=master;Data Source=test;uid=john;pwd="123 "

谢谢

1 个答案:

答案 0 :(得分:13)

我可以告诉你做什么工作:

Provider=SQLOLEDB;Password="123 ";Persist Security Info=True;User ID=john;Initial Catalog=mydbname;Data Source=127.0.0.1
  1. 当使用pwd关键字而不是Password时,它无法连接 - 您需要使用Password关键字,该关键字应使用双引号括起来。
  2. uid而不是User ID工作正常 - 我仍然使用User ID,因为连接构建器默认创建它。
  3. Persist Security Info关键字(在其中一条评论中提及)对连接没有影响 - 因为@TLama评论很好“你可以连接,但是你没有从{{返回密码1}} interface,如果你把它保持为假。“
  4. 连接字符串中关键字的顺序并不重要。 IDBProperties接口将此字符串解析为internal "Properties" collection

  5. 使用SQL Server 2008 R2进行测试。