Access

3 respostas
P
Olá,





Estou com o seguinte problema: criei um banco e uma tabela, no programa em java efetuo a conexão, até ai tudo ok o problema é que se executo uma query simples tipo "SELECT * FROM users" funciona tudo ok ele retorna a tabela e imprime na tela, mas quando executo uma query do tipo "SELECT userid FROM users" ele  o seguinte erro:





java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Seqüência de agrupamento selecionada não suportada pelo sistema operacional.


	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)


	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6183)


	at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:2489)


	at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:329)


	at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:244)


	at secserv.testesql.SEx3


elect(testesql.java:56)


	at secserv.testesql.main(testesql.java:85)





A tabela é simples, tem quatro colunas e uma linha : userid, matricula, nome e senha. Se alguém puder me ajudar Obrigado.


Segue o código da aplicação:





import java.sql.<em>;


import java.util.</em>;





public class testesql


{


private static Statement statement = null;


private static Connection conexao = null;


private String URL = "jdbc:odbc:Tarefas";





public testesql()


{


super();


try


{


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


conexao = DriverManager.getConnection(URL, "", "");


}


catch (SQLException sql1)


{


sql1.printStackTrace();


conexao = null;


}


catch (ClassNotFoundException clas)


{


System.out.println("Ex2");


clas.printStackTrace();


conexao = null;


}


}





public String Select(String QueryLine)


{





String Output = "";


int columns;


int pos;


try


{


	


Statement stmt = conexao.createStatement();


			


System.out.println(QueryLine);


ResultSet rs = stmt.executeQuery(QueryLine);


			


columns = (rs.getMetaData()).getColumnCount();


while (rs.next())


{


for (pos = 1; pos <= columns; pos++)


{


Output += rs.getObject(pos) + " ";


}


Output += "n";


}


			


stmt.close();


}


catch (SQLException e)


{


e.printStackTrace();


Output = e.getMessage();


}


return Output;


}





public static void main(String[] args)


{


testesql teste = new testesql();





String query = "SELECT iduser FROM users";


System.out.println(teste.Select(query));


}


}

3 Respostas

G

Ola colega,

estou comecando a usar BDem java agora, mas estava dando uma olhada no seu codigo e me parece que sua SELECT esta com o campo errado. Vc citou acima que o campo eh userid e estah na query iduser.

Se vc ainda naum resolveu o problema, quem sabe seja isto?

G
Paulada,


sobrou um tempinho e dei uma "mexidinha" no seu codigo, veja como ficou. Aqui funcionou, soh naum tah quebrando linha na exibicao.





import java.sql.<em>;


import java.util.</em>;





public class testesql


{


private static Statement statement = null;


private static Connection conexao = null;


private String URL = "jdbc:odbc:Tarefas";





public testesql()


{


super();


try


{


<a href="//Class.forName">//Class.forName</a>("sun.jdbc.odbc.JdbcOdbcDriver");


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();


conexao = DriverManager.getConnection(URL, "", "");


}


catch (Exception e)


{


System.out.println(e.toString());


System.exit(0);


}	


/<em>catch (SQLException sql1)


{


sql1.printStackTrace();


conexao = null;


}


catch (ClassNotFoundException clas)


{


System.out.println("Ex2");


clas.printStackTrace();


conexao = null;


}</em>/


}





public String Select(String QueryLine)


{





String Output = "";


int columns;


int pos;


try


{





Statement stmt = conexao.createStatement();





<a href="//System.out.println">//System.out.println</a>(QueryLine);


ResultSet rs = stmt.executeQuery(QueryLine);





columns = (rs.getMetaData()).getColumnCount();


while (rs.next())


{


for (pos = 1; pos <= columns; pos++)


	


Output += rs.getObject(pos) + " ";


}


Output += "n";








stmt.close();


}


catch (SQLException e)


{


e.printStackTrace();


Output = e.getMessage();


}


return Output;


}





public static void main(String[] args)


{


testesql teste = new testesql();





String query = "SELECT userid, matricula, nome, senha FROM users";


System.out.println(teste.Select(query));


}


}
F
Utilizei um código de um livro java para fazer o que você fez. Alias o seu código anterior deu uma ajuda boa para eu estudar, valeu! Funciona apenas no prompt, basta compilar.  uma espiada:





import java.sql.<em>;


import java.util.</em>;





public class testesql


{


    private static Statement statement = null;


    private static Connection conexao = null;


    private String URL = "jdbc:odbc:meudb";





    public testesql()


    {


        super();


        try


    {


    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


    conexao = DriverManager.getConnection(URL, "", "");


}


    catch (SQLException sql1)


    {


        sql1.printStackTrace();


        conexao = null;


    }


    catch (ClassNotFoundException clas)


    {


        System.out.println("Ex2");


        clas.printStackTrace();


        conexao = null;


    }


}





public String Select(String QueryLine)


{





    String Output = "";


    int columns;


    int pos;


    try


{





Statement stmt = conexao.createStatement();





System.out.println(QueryLine);


ResultSet rs = stmt.executeQuery(QueryLine);


columns = (rs.getMetaData()).getColumnCount();





while (rs.next())


{


    for (pos = 1; pos <= columns; pos++)


    {


        Output += rs.getObject(pos) + " ";


    }


    Output += " ";


}





    stmt.close();


}


    catch (SQLException e)


    {


        e.printStackTrace();


        Output = e.getMessage();


    }


    return Output;


}





public static void main(String[] args)


{


    testesql teste = new testesql();





    String query = "SELECT id,nome,turno FROM empregados where nome = ´Francesco´";


    System.out.println(teste.Select(query));


}


}


 <img src="//https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pngunglasses.png?v=5" title=":sunglasses:" class="emoji" alt=":sunglasses:"> <a>[email removido]</a>
Criado 16 de fevereiro de 2003
Ultima resposta 1 de mar. de 2003
Respostas 3
Participantes 3