1

Access2007データベースのVBコードから実行するストアドプロシージャがあります。通常、コードは正常に実行されます。ただし、次のエラーが発生することがあります。

エラー#-2147217900は、ODBCドライバー用のMicrosoftOLEDBプロバイダーによって生成されました[Microsoft][SQLServer Native Client 10.0] [SQLServer]SQLを直接実行しています。カーソルなし。

私はこれについてかなりの研究をしました、そして私は多くを思いつきませんでした。私が見た2つの原因があります。1つは不十分な権限であり、もう1つはストアドプロシージャ自体の問題に関係しています。権限は問題ではないことを私は知っています。また、ストアドプロシージャは、何度実行しても、ManagementStudioで完全に正常に実行されます。

助けてください!!!

4

2 に答える 2

6

同僚と協力して問題が特定されました。基本的に主要な問題は、実際の問題が一般的なエラーメッセージによってわかりにくくなっていることでした。この場合、「カーソルなし」エラーです。秘訣は、実際のエラーメッセージが何であるかを理解することでした。ある考えを持って、同僚がODBCドライバーを私の投稿に記載されている「SQLServerNativeClient10」から古いMSSQLServerドライバーに変更しました。新しいバージョン10はエラーを難読化しましたが、古いドライバーはストアドプロシージャにある実際のエラーを明らかにしました(私自身のテストのため、元々はそうではないと信じていました)。つまり、結論として、これから2つのポイントがあります。最初にこのエラーが発生した場合は、上記のトリックを試して実際のエラーと2番目のメモを明らかにしてください。

于 2012-08-15T22:18:29.293 に答える
1

このエラーが発生した場合は、ストアドプロシージャに渡されているパラメータを確認する必要があります。ストアドプロシージャオブジェクトに渡す変数を出力します。一重引用符やエスケープ文字などの英数字以外の文字には特に注意を払います。

于 2012-07-31T06:39:10.530 に答える