Erro retornado pelo ODBC

4 respostas
manrobfer

Boa tarde a todos.

Se alguém teve algum erro semelhante me ajudem.

Meu banco, MSQ Server está configurado com Case Sensitive, isto quer dizer que eu deveo digitar nomes de campos e tabelas exatamente como está no banco.
criei uma consulta ex: “Select FirstName,LastName from Employees”. Pois é exatamente assim que está no banco. Ao chmar a class ConexaoDB que criei em java ele rotorna um erro informando que a tabela “EMPLOYEES” (notem que está em “maisculo”) não existe. Ou seja em algum momento ele está transformando “Employees” em “EMPLOYEES”.
Já dei uma olhada no ODBC do WindowsXP e não há nada errado. Acho que em algum momento o Java está transformando em maiuscula.

Se alguém já teve se problema, ou já o viu sabe como resolvê-lo me de uma ajuda.

Segue trecho do meu codio em java onde o erro é gerado.

String SqlQuery = "Select TitleOfCourtesy,Title,FirstName,LastName from Employees"; public JfrCadastro() { setTitle("Principal"); setSize(650,450); setResizable(false); setLocation(150,150); System.out.println(SqlQuery); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); try { conecta = ConexaoDB.getConnection(); stm = conecta.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rst = stm.executeQuery(SqlQuery); } catch(SQLException sc) { System.out.println("Erro de conexão"+sc.getMessage()); System.exit(0); } Container cp = getContentPane();

OBS: Para entender bem os fundamentos de Java estou usando o bloco de notas nos meus codigos.

Obrigado

4 Respostas

T

Não sabia que o MS SQL Server tinha essa opção. Quando eu estudei para MCDBA havia uma opção para configurar a “collation order” mas nunca ouvi falar que você tinha de digitar os nomes de campos e tabelas como estão na definição do banco (que é uma coisa que o padrão ANSI SQL não suporta). Você não está confundindo as coisas? MS SQL Server != PostgreSQL ou MySQL (um desses dois bancos tem esse comportamento estranho).

davidbuzatto

Vc experimentou usar um driver JDBC ao invés de usar ODBC?
Tente usar o driver jTDS e não o da Microsoft.

Até mais!

manrobfer

Pois é thingol. O cara aqui é o mssql 2000 e está configurado assim, eu conheço essa opção desde o mssql 7.
Porém, eu usei o termo “case sensitive” para ficar mais facil da turma endender mas o lance é que na hora da instalação o dba usou alguma coisa como “Carcter binário” que dá este efeito.
Se voce digitar nome de tabela ou campo diferente da definição do banco da erro sim. Mesmo no query anyliser é assim…

Quanto ao meu problema… tem alguma dica?

grande
Abraço.

manrobfer

Valeu a dica davi

Vou tentar e dou retorno.

obrigado!

Criado 10 de janeiro de 2008
Ultima resposta 10 de jan. de 2008
Respostas 4
Participantes 3