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 dá 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 só: 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));
}
}
Access
P
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. Dá 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
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo