No meu PreparedStatement, pra ser mais preciso após o executeQuery dou um first() para o ponteiro ir no 1º registro, mas o estranho que está dando um erro muito estranho:
The requested operation is not supported on forward only result sets.
sua instrução SQL está levando um “;” no final e isso pode causar um erro no momento da execução não
obtendo assim um Set de resultados e ao tentar o first ele não tem o que apontar!
Tente retirar esse ; e poste o resultado.
Valeu
L
leandrofaria
Tentei e deu o mesmo erro.
Alguma outra ideia ?
Obrigado
ViniGodoy
Depois que você executa a consulta, o preparedStatement já está posicionado antes do primeiro registro.
Portanto, ao invés de first() você deve chamar next() para posiciona-lo no primeiro registro. next() retorna true se foi possível andar sobre o statement, ou false, caso tenha sido impossível (ou seja, se não havia um registro na próxima posição).
O comando first() só existe em PreparedStatements que sejam navegáveis para frente e para trás. Normalmente, não é necessário criar esse tipo de cursor no banco, pois só lemos os dados do primeiro até o último. Caso isso seja realmente necessário, você tem que criar o PreparedStatement assim:
Verifique com muito carinho se não é melhor continuar usando um PreparedStatement que não seja scrollable. Geralmente ele é desnecessário. Além de consumir muito mais recursos do banco, esse tipo de statement é consideravelmente mais lento. Sem falar que alguns BDs podem não suporta-lo.