2014-07-18 3 views
0

현재 로컬 컴퓨터에서 호스팅되는 SQL Server 데이터베이스에 연결하려고합니다. 나는 연결하려면 다음 코드를 사용하고 있습니다 : 나는 또한 표시되는 결과를 선별하고 볼을 실행하기 때문에로컬 SQL Server 데이터베이스에 연결하면 에뮬레이터에서 작동하지만 실제 장치에서는 실패합니다.

public class DBConnect { 

    private static volatile DBConnect INSTANCE = null; 
    String URL = ""; 
    Connection conn = null; 
    Statement statement = null; 
    ResultSet resultSet = null; 

    private DBConnect() { 

    } 

    public static DBConnect getInstance() { 
     if (INSTANCE == null) { 
      synchronized (DBConnect.class) { 
       INSTANCE = new DBConnect(); 
      } 
     } 
     return INSTANCE; 
    } 

    public void setConnection(String DBName, String UserName, String Password) { 
     try { 
      Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance(); 
      URL = "jdbc:jtds:sqlserver://192.168.0.81:1433;instanceName=SQLEXPRESS;DatabaseName=" + DBName + ";integratedSecurity=true;user=" + UserName + ";password=" + Password; 
      conn = DriverManager.getConnection(URL); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

이 내 Genymotion 에뮬레이터에서 작동합니다.

나는 그것이 작동하지 않습니다 동일한 Wi-Fi 네트워크에 실제 장치와 함께 할 때 그러나이

을 수행 할 JTDS 드라이버를 사용하고, 나는 연결 오류가 발생합니다.

왜 이런 아이디어가 나옵니까?

이 내 오류 로그입니다 :

java.sql.SQLException: Network error IOException: failed to connect to /192.168.0.81 (port 1433) after 90000ms 
07-18 08:29:09.465 27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:410) 
07-18 08:29:09.466 27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:187) 
07-18 08:29:09.466 27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at java.sql.DriverManager.getConnection(DriverManager.java:175) 
07-18 08:29:09.467 27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at java.sql.DriverManager.getConnection(DriverManager.java:140) 
07-18 08:29:09.467 27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at ordermanager.sentosa.ro.ordermanager.utils.DBConnect.setConnection(DBConnect.java:39) 
+0

방화벽이 들어오는 연결을 차단합니까? –

+0

아무런 반응이 없도록 모든 연결을 허용하라는 메시지가 표시되지 않았습니다 ... –

+0

데이터베이스 서버가 아닌 시스템의 에뮬레이터에서 문제를 재현 할 수 있습니까? –

답변

1

두 가지 가능한 내가 볼 수있는 문제에 대한 해결책 :

  1. 당신은 아마 다른 네트워크에 노력하고 있습니다 Genymotion 에뮬레이터를 사용하는
  2. 온라인 모드에서 SQL Server 데이터베이스에 액세스 할 수 있는지 확인하려면 다음을 설정하십시오.

    ALTER DATABASE database-name SET ONLINE

관련 문제