2

質問は基本的なものかもしれません。そうであれば、ご容赦ください。Android アプリを MSSQL Serverに接続しようとしています。以下のリンクの質問で同じコードを使用しました。このリンクで選択した回答に従って、sqljdbc 4.3.0 を使用しました。

com.mysql.jdbc.driver クラスが見つからない例外

これを行うと正常にデバッグされますが、Samsung Galaxy Y (Gingerbread) であるデバイスで実行すると、次のエラーが表示されます。

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host server.com/Db_name, port 1433 has failed. Error: "null. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".

どんな助けでも大歓迎です。

編集:エミュレーターで実行したところ、テキストビューにこのエラーが表示されます。

android.os.NetworkOnMainThreadException

4

2 に答える 2

1

この例外があります:

com.microsoft.sqlserver.jdbc.SQLServerException:The connection to the 
          host server.com, named instance Db_name has failed. 
Error:"Java.net.SocketTimeoutException". Verify the server and the instance names, 
          check that no firewall is blocking UDP traffic to port 1434, and for 
          SQL Server 2005 or later verify that the SQL Server Browser Service 
          is running on the host.

基本的に、例外メッセージの内容を実行する必要があります。

  1. 正しいサーバー ホスト名を使用していることを確認します。(本当に「server.com」ですか?)
  2. 正しいインスタンス名を使用していることを確認してください。(本当に「Db_name」ですか?)
  3. デバイスから UDP ポート 1434 へのアクセスをブロックするファイアウォールがないことを確認します。
  4. SQL Server Browser Service が "server.com" (またはそれ自体) で実行されていることを確認します。

お使いのデバイスで他に試していただきたいことがいくつかあります。

  • 「server.com」(または何でも)のDNSルックアップを実行できることを確認してください
  • 「server.com」ホスト(または何でも)に「ping」できることを確認してください

基本的に、間違っている可能性のあるものがいくつかあり、問題の本当の原因が見つかるまで、それらを系統的に排除する必要があります。私たちはあなたのためにそれをすることはできません.


エミュレーターで実行したところ、テキスト ビューにこのエラーが表示されます。

   android.os.NetworkOnMainThreadException

これは別の問題です。

javadocの内容は次のとおりです。

「アプリケーションがメイン スレッドでネットワーク操作を実行しようとしたときにスローされる例外。

これは、Honeycom SDK 以降を対象とするアプリケーションに対してのみスローされます。以前のバージョンの SDK を対象とするアプリケーションは、メイン イベント ループ スレッドでネットワークを実行できますが、推奨されません。ドキュメント「応答性の設計」を参照してください。

要するに、メイン イベント スレッドでネットワーク処理 (プラットフォーム外のデータベースとの通信を含む) を行うべきではありません。UI が長時間ロックされる可能性があるからです。

于 2013-03-08T09:27:12.297 に答える
0

URLに問題があります。次のURL形式を使用してください。

jdbc:sqlserver://server.com\\Db_name;
于 2013-03-08T07:54:43.317 に答える