locked
Conexão do SQL Server Express 2005 com aplicação Java RRS feed

  • Pergunta

  • Preciso conectar o SQL Server Express 2005 a uma aplicação Java.

    Utilizei o seguinte código:

     public void conectar() {
      try {
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433/SGA;user=xxxxx;password=xxxxx");
                st = conn.createStatement();
                retorno = 1;
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
                retorno =0;
            } catch (SQLException ex1) {
                ex1.printStackTrace();
                retorno =0;
           }
        }

    Já adicionei os arquivos *.jar na biblioteca do Netbeans. Habilitei as portas TPC/IP do banco de dados, mas ainda estou tendo o retorno de "ERRO NA CONEXÃO COM O BANCO DE DADOS".

    Não tenho idéia do que pode estar ocorrendo e preciso resolver esse problema com urgênica.

    Será que alguém pode me ajudar?


    Andréia


    • Editado Déia_GC quarta-feira, 3 de outubro de 2012 23:39
    • Movido Roberson Ferreira _ quinta-feira, 4 de outubro de 2012 17:09 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 3 de outubro de 2012 23:27

Todas as Respostas

  • Déia, sua dúvida está relacionada diretamente ao Java, em como fazer para ele se conectar ao SQL.

    Acredito que terá mais êxito se postar sua dúvida num fórum específico de Java.

    Aconselho http://www.guj.com.br/forums/list.java.

    Boa sorte!


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 4 de outubro de 2012 10:52
  • Roberson, antes de mais nada, agradeço a atenção.

    Já entrei com outros 3 códigos java para conexão com o banco e ainda sim me retorna o mesmo erro.

    Tenho a impressão que não habilitei alguma configuração no banco de dados ou talvez esteja relacionado a permissão de usuários.

    Por exemplo, estou acessando com o usuário "sa". Se eu for no database, clicar com o botão direito e selecionar Permissions, observo que o item Conect não possui flag. O usuário está com Grant.

    Quando eu tento inserir o flag ele me retorna o erro:

    "Grant filed for Database 'SGA'. (Microsoft .SqlServer.Express.Smo)

    Additional information:

    An exception occurred while executing a Transact-SQL statement or batch.

    (Microsoft .SqlServer.Express.ConnectionInfo)

    Cannot grant, deny, or revoke the connect database permission to roles and application roles.

    (Microsoft SQL Server, Error: 4627)".

    Enfim, será que esse tipo de erro pode estar influenciando na minha conexão com a aplicação java?

    Abs.


    Andréia

    quinta-feira, 4 de outubro de 2012 13:40
  • Déia,

    Vai no Management Studio, clique com o botão direito sobre o Login ('sa' ou qualquer outro que esteja usando), vá em Properties. Na janela de propriedades acesse a aba User Mapping e veja se o seu banco de dados está mapeado para o usuário.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 4 de outubro de 2012 14:00
  • Roberson,

    em Users mapped to this login eu tenho os itens:

    1.master

    2.model

    3.msdb

    4.SGA (banco que estou utilizando)

    5.tempdb

    Todos possuem flag.

    Porém em Database role membership for, para todos os itens acima, eu tenho com flag apenas "db_owner" e "public".

    Tentei habilitar mas obtive o erro 15405.


    Andréia

    quinta-feira, 4 de outubro de 2012 14:53
  • Se já está como db_Owner do seu banco principal, já é o suficiente.

    Mas você consegue acessar as tabelas desta base pelo Management Studio?

    Ex.: Com o 'sa', você consegue dar um Select qualquer em uma das tabelas?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 4 de outubro de 2012 14:56
  • Sim, faço selects, , crio tabelas, updates, dropo tabelas, inserção de dados...até agora não obtive problemas em relação a isso.

    Andréia

    quinta-feira, 4 de outubro de 2012 15:07
  • É por isso que é difícil imaginar que o problema seja no banco, e não na comunicação entre o Java e o banco.

    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 4 de outubro de 2012 17:06
  • Se você for nas propriedades do usuário (não me refiro ao Login, mas ao User do banco) eles estão em alguma role?

    Veja o usuário dbo, por exemplo. Clique com o botão direito sobre ele, Properties, aba Membership. Veja se está marcado db_owner. Depois volte na aba General e veja se o dbo está atrelado ao login 'sa'.

    Se tudo estiver ok, significa que este login ('sa') está pronto pra acessar o banco.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 4 de outubro de 2012 17:09
  • Já tentou trocar o localhost pelo IP da máquina/nome? 

    []'s

    quinta-feira, 4 de outubro de 2012 17:33
  • Fernando,

    alterei o localhost pelo IP/nome e continuo com a mesma inconsistência.

    Vou dar uma olhada no fórum indicado pelo Roberson para ver se consigo resolver este problema.

    Grata pela atenção.


    Andréia

    quinta-feira, 4 de outubro de 2012 18:29
  • Roberson, pelo jeito está tudo ok.

    Vou analisar melhor o código java ou talvez configurações no netbeans.

    Mais uma vez agradeço a atenção.


    Andréia

    quinta-feira, 4 de outubro de 2012 18:30
  • Déia, o FireWall está desabilitado?

    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 4 de outubro de 2012 18:50
  • Sim....já desabilitei.

    Andréia

    quinta-feira, 4 de outubro de 2012 18:57
  • Você está se conectando ao banco pelo Management Studio? Usando o usuário sa? SQL Browser está startado? Acho que você não passou o nome da instancia na connectionString.

    Qual o nome da sua instancia de SQL Server?

    Rode isso pra saber.

    select SERVERPROPERTY('instancename') 

    Dê uma olhada aqui http://msdn.microsoft.com/en-us/library/ms378428(v=sql.105).aspx

    • Editado Andrei.F sexta-feira, 5 de outubro de 2012 14:04
    sexta-feira, 5 de outubro de 2012 13:45
  • Déia, viu o SQL Browser? Está ativo?

    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sábado, 6 de outubro de 2012 12:23
  • Oi Roberson, tudo bem?

    Desculpe-me pela demora em responder.

    Vi sim, o browser está ativo.


    Andréia

    sábado, 13 de outubro de 2012 22:02
  • Oi Andrei,

    Respondendo seus questionamentos: sim, estou utilizando o Management Studio. Utilizando o usuário sa. O browser está startado.

    Já entrei com a declaração jdbc contendo o nome do servidor e a instância e mesmo assim não conectou.

    Estou utilizando o Windows Ultimate. Vou instalar e fazer os mesmos processos no Windows XP para ver se de repente não seja alguma interferência do sistema operacional.


    Andréia

    sábado, 13 de outubro de 2012 22:09