SQLDriverConnectのドキュメントによると、
接続文字列と初期化ファイルの文法のため、中かっこで囲まれていない文字 []{}(),;?*=!@ を含むキーワードと属性値は避ける必要があります。
と
文字 []{}(),;?*=!@ のいずれかを含む中かっこ ({}) で囲まれた DSN または接続文字列の値は、そのままドライバーに渡されます。
接続文字列の使用はDSN=%s;UID=%s;PWD={%s}
SQLServer で機能します。実際、特定の特殊文字がある場合、{} でパスワードを囲まないと失敗します。ただし、MS Access に同じ文字列を使用すると、「無効なパスワード」で失敗し、{}
削除すると機能します。また、Oracle では機能しません。
{} で囲まれた文字列がそのままサーバーに渡された場合、それは機能しませんか? または、何か不足していますか?