4

SQLDriverConnectのドキュメントによると、

接続文字列と初期化ファイルの文法のため、中かっこで囲まれていない文字 []{}(),;?*=!@ を含むキーワードと属性値は避ける必要があります。

文字 []{}(),;?*=!@ のいずれかを含む中かっこ ({}) で囲まれた DSN または接続文字列の値は、そのままドライバーに渡されます。

接続文字列の使用はDSN=%s;UID=%s;PWD={%s}SQLServer で機能します。実際、特定の特殊文字がある場合、{} でパスワードを囲まないと失敗します。ただし、MS Access に同じ文字列を使用すると、「無効なパスワード」で失敗し、{}削除すると機能します。また、Oracle では機能しません。

{} で囲まれた文字列がそのままサーバーに渡された場合、それは機能しませんか? または、何か不足していますか?

4

1 に答える 1

1

SQLDriverConnect の Access 固有のページには、次のように記載されています。

PWD キーワードには、特殊文字を含めないでください (SQLGetInfo の戻り値の SQL_SPECIAL_CHARACTERS を参照してください)。

Access に接続しているときにSQLGetInfo 関数を呼び出し、SQL_SPECIAL_CHARACTERS を InfoType 引数として渡すと、@Andrew Gibson が言及した禁止文字が返されます。

ナレッジ ベース記事の「詳細」セクションには、Access アプリでの使用が推奨されていない特殊文字の一覧があります。

IBM の DB2 には、同じパラメーター リストを持つ同じ名前のSQLGetInfo 関数があり、同じ InfoType 定数を使用して、次のようにリストされている特殊文字を返します。

a...z、A...Z、0...9、アンダースコアを除くすべての文字

于 2013-06-29T06:16:27.017 に答える