sql - 连接字符串中的转义空格

标签 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 "

谢谢

最佳答案

我可以告诉你什么有效:

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 很好的评论“您可以连接,但您没有获得密码如果您将其保留为 False,则从 IDBProperties 接口(interface)返回。”
  4. 连接字符串中关键字的顺序并不重要。 IDBProperties 接口(interface)将此字符串解析为 internal "Properties" collection
<小时/>

使用 SQL Server 2008 R2 进行测试。

关于sql - 连接字符串中的转义空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528274/

相关文章:

具有缓存更新的 Delphi 主从数据集 - 如何循环遍历详细数据集中的所有记录

SQL:修改具有唯一值的查询结果行

sql-server - SSIS 2008 - 如何将日期和时间字段添加在一起

sql-server - 为什么无法在 Windows 7 Professional 64 位 SP1 上安装 SQL Server Express 2016?

java - DELPHI中如何将JObject转换为TJavaArray<byte>

android - 使用 C++ Builder Bridge 文件时出错

sql - 选择 * 除外

sql - Oracle:如何在where子句中按日期和时间过滤

c# - Linq to SQL,多对多设计

sql - sp_whoisactive 导致未知查询 : "Insert Into <table_name> select *,%%bmk%% from <table_name> option (maxdop 1)"