1

Sage Line 50のテーブルからいくつかのデータをプルし、そのデータをWebサーバーにアップロードするための単純なC#コンソールベースのアプリケーションを開発しました。Windows 7 x64のODBC接続で使用され、完全に機能します。Sageアカウントのデータは、マップされたネットワークドライブにあります。

このソフトウェアを開発/テストしたPCには、v17ODBCドライバーを備えたSageLine 50 2011が完全にインストールされており、すべての更新が適用されています。

最終的に、アプリケーションはファイルサーバーでスケジュールされたジョブとして実行されますが、Windows 2008 R2ファイルサーバー(Sageアカウントデータをホストするのと同じファイルサーバー)でコードを実行しようとすると、ODBCドライバーから例外がスローされます。 、 次のように:

ERROR [28000] User ID or Password invalid
ERROR [01000] The driver returned invalid (or failed to return) SQL_DRIVER_ODBC_VER: 2.00
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr).

パスワードが正しいことを私は知っているので、パスワードエラーは誤った名称です。ODBC構成も確認されています。

サーバーに完全なSageアプリケーションをインストールしたくなかったため、インストールCDからSage ODBCドライバーをインストールしただけで、S17DBC32.dllファイルがワークステーションにインストールされたものとは異なるバージョンであることに気付きました(おそらくSageアカウントがインストールする自動更新のため)。この新しいファイルをファイルサーバー上の元のファイルの上にコピーして、ODBC構成を再作成しようとしましたが、それは役に立ちません。

DLLファイルを古いファイル(本番サーバー)にコピーしてから、サーバーを再起動していません。新しいDLLを有効にするためにサーバーを再起動する必要がありますか、それともこれをトリガーする別の方法がありますか?

間違ったツリーを吠えているのかもしれませんが、Sage ODBCドライバーDLLのバージョンは関係ありませんか?どんな助けでも大歓迎です。


編集

サーバーを再起動する機会がありましたが、新しいDLLは何の違いもありませんでした。それでも同じエラーが表示されます。

4

3 に答える 3

5

クリーンなWindows8のインストールでも同じ問題が発生しました。修正は、.net3.5ランタイムをインストールすることでした。

私の.netアプリが同じエラーで失敗した後、Windowsは実際にそれ自体を提案しました(MS-Accessによってスローされた同じエラーはインストールを促しませんでした)。

于 2012-11-11T11:01:28.097 に答える
0

32ビットドライバーをインストールする必要があります。64ビットバージョンのコントロールパネルにアクセスしてODBCにアクセスする場合は、C:\ Windows \ SysWOW64\odbcad32.exeにアクセスする必要があります。

于 2014-02-26T14:49:19.153 に答える
-1

サーバーにSageアカウントのフルインストールを配置し(yuk!)、自動更新を適用することになりました。これで、アプリケーションは正常に機能します。

于 2012-08-03T15:31:37.017 に答える