You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Informix ODBC连接字符串中特殊字符密码失效问题

解决Informix ODBC连接字符串中特殊字符密码的问题

你使用Informix ODBC Driver 3.34 32BIT,在PowerShell脚本中配置ODBC连接字符串时,不含特殊字符的密码可正常连接,但用大括号{...}包裹带特殊字符的密码无效,需适配含特殊字符的Windows密码。以下是可行的解决方案:

可行方法

1. 直接转义特殊字符

针对分号;、等号=、反斜杠\这类会干扰连接字符串解析的特殊字符,在字符前添加反斜杠\进行转义:

# 示例:密码为 read;only\=
$conn.connectionstring = "DSN=PD7333;Uid=generic;Pwd=read\;only\=\;"

2. 用双引号包裹密码

Informix ODBC驱动支持用双引号包裹密码,在PowerShell中需注意引号的转义:

  • 若使用双引号字符串,需用两个双引号表示一个双引号:
# 示例:密码为 read;only=!
$conn.connectionstring = "DSN=PD7333;Uid=generic;Pwd=""read;only=!"""
  • 若使用单引号字符串,内部双引号无需转义:
$conn.connectionstring = 'DSN=PD7333;Uid=generic;Pwd="read;only=!"'

3. 通过属性集合单独设置密码

避开直接拼接连接字符串,使用SetAttribute方法单独传入带特殊字符的密码,避免解析冲突:

$conn = New-Object System.Data.OleDb.OleDbConnection
$conn.ConnectionString = "DSN=PD7333;Uid=generic"
$conn.SetAttribute("Pwd", "read;only=!") # 直接传入原始密码
$conn.Open()

4. 升级ODBC驱动版本

Informix ODBC Driver 3.34属于旧版本,对特殊字符的处理逻辑可能存在局限。如果上述方法无效,建议升级到最新的32位Informix ODBC驱动(需匹配系统架构),新版本对特殊字符的兼容性更好。

内容的提问来源于stack exchange,提问作者Vasco V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:50:27