PreparedStatement + SELECT UNION

Olá Pessoal,

Estou passando pelo seguinte problema:

Se eu utilizo um select UNION com um PreparedStatement da seguinte maneira funciona.

pstmt = conn.prepareStatement(SelectComUnion);

mas se eu utilizo com SCROLLABLE ResultSet dá erro.

pstmt = conn.prepareStatement(SelectComUnion, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_READ_ONLY);

Alguém já teve este problema e sabe como resolver, ou sabe se é algum bug do JDBC, ou do Driver. Estou utilizando Jdbc-Odbc bridge com banco Access.

[]'s

por favor, passe a stack trace pra gente!

e as vezes pode ser que o seu driver jdbc nao suporta, que driver voce ta usando?

O Paulo tem razão já tive problema semelhante devido ao driver ODBC, mande a mensagem de erro para termos certeza.

Olá Pessoal,

Acabou que não tive tempo de postar a mensagem de erro aqui vai:

java.sql.SQLException : [Microsoft][Driver ODBC para Microsoft Access] O número de colunas nas duas tabelas ou consultas selecionadas de uma associacao nao coincidem.

[]'s

Oi Isaias, a resposta e bem facil e obvia como o driver informa o numero de colunas das duas querys que vc esta tentando unir tem que ser iguais ( padrao ansi ??? ) caso contrario a uniao nao acontece.

Lembrando que o erro ta no sql, e nao no Java.

Rafael

Olá Pessoal,

Não concordo muito com isto pelo seguinte, se é erro de SQL porque que quando se usa o PreparedStatement sem a opção de SCROLLABLE ResultSet funciona?

Ou seja

pstmt = conn.prepareStatement(SelectComUnion); // Assim funciona

pstmt = conn.prepareStatement(SelectComUnion, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.TYPE_READ_ONLY); // Assim não

Se for erro de SQL não era para a excessao ser lançada no primeiro caso também?

[]'s

Isaías

Bom, se voce consegue executar o sql “no braco”, entao realmente tem algum outro probz… estranho…

Rafael

Olá Rafael,

Eu creio que é problema do Driver mesmo, testei em outro banco e funcionou.

[]'s