2

編集1

システム DSN を作成して使用してみました。以下の同様の手順に従って、接続の試行が成功しました。次に、この新しい DSN を参照するように接続文字列を変更しました。エラーを受け取りました指定された DSN には、 Driver と Application の間のアーキテクチャの不一致が含まれています

解決するために、sysWOW64 odbcad32 exe を使用して同一の DSN を追加しました。私のコードは正常に完了するようになりました。これは問題を浮き彫りにするだけです。コードはシステム DSN に接続できます。しかし、これらの属性を DSNless 接続にコピーすると、コードが失敗します。接続文字列の何が問題になっていますか?

編集1を終了

セットアップに成功したのに接続文字列が失敗するのはなぜですか?

これらの属性は正常に機能しているようです

しかし、私のプロジェクトでこの接続文字列を使用すると"Driver=SQL Server Native Client 11.0;DATABASE=SynchronizerTester;Trusted_Connection=Yes;SERVER=(localdb)\v11.0;"、System.Data.Odbc.OdbcException が発生し、名前付きパイプが接続を開くことができませんでした。

他の記事では、代わりにデータ ソースを使用するようアドバイスしています。「サーバーまたは dsn 属性が指定されていない」ため、このアドバイスは失敗します。

ここで違いを生む Odbc ファイル DSN と接続文字列の違いは何ですか? コードで Odbc* ファミリーの代わりに Sql* ファミリーを使用する必要がありますか? もしそうなら、適切なタイプを挿入できるように、接続文字列に基づいて使用するものをどのように検出できますか?

さまざまな接続文字列を操作するために同じコードを使用している可能性があることに注意してください。私の最初の考えは、ODBC ライブラリを最小公分母として使用することでした。

4

2 に答える 2

5

ああ、神様...

この投稿は、完全な愚かさの神社として私の SO プロファイルに存在する必要があるため、削除しません。

バックスラッシュはエスケープ文字です。

変化する:

SERVER=(localdb)\v11.0;

に:

SERVER=(localdb)\\v11.0;

于 2013-08-14T17:19:25.023 に答える