Olá André,

    1 - A exceção de "operação não suportada" acontece não pelo fato do
fabricante do driver ter se esquecido de escrever o código para essas API´s,
mas sim porque vários SGBD´s relacionais não suportam este tipo de operação,
ou seja, nesses SGBD's só é possível percorrer o result set uma linha após a
outra e sempre a partir da primeira linha. Operações como "vá para o
primeiro registro" ou "vá para o último registro" simplesmente não são
suportadas pelo banco.

   2 - O método que retorna o número de colunas de um result set existe sim
(rs.getMetaData().getColumnCount(), onde rs é o seu result set), entretanto
acho que o que você deseja é um método que retorne o número total de
registros retornados na sua consulta. Esse método infelizmente ainda não
existe, provavelmente porque o que acontece é que o banco só te retorna os
registros um a um e apenas a partir do momento em que se executa um fetch
(rs.next()) no result set, ou seja, como os registros são entregues um a um
e  somente quando um fetch é executado, a informação de quantos registros
foram retornados pela consulta só estaria disponível após ter sido executado
um fetch no último registro retornado pela consulta. Isto também depende da
arquitetura do banco, mas até onde sei nenhum SGBD devolve todos os
registros assim que a query é executada, por um a razão muito simples,
imagine se o seu result set tiver 1.000.000 de registros, situação comum em
muitas consultas para processamento batch, ficaria inviável se transferir
toda essa massa de dados de uma só vez do SGBD para a aplicação. as
alternativas são embutir um count() no seu result set, ou percorré-lo do
início ao fim contando o número de registros. A melhor escolha vai depender
do tamanho do result-set que você imgina que a query irá retornar.

    Espero ter ajudado,

    Anderson M. C. de Souza

----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, January 13, 2001 11:23 AM
Subject: [java-list] Problemas com ResultSet


> Oi pessoal!
>
> Estou com um probleminha:
>
> Estou tentando executar alguns metodos, a partir de um ResultSet, mas
estou
> recebendo uma
> Exception de operacao nao suportada, embora estes metodos estejam
descritos
> na API. São eles:
>
> resultset.last();
> resultset.first();
>
> tambem gostaria de saber qual e o metodo que me retorna o numero de
colunas
> do meu resultset, ou algum
> metodo que me retorne o numero da ultima coluna. Alguem ja passou por
> isso???
>
> Obrigado y té+
>
> André Monteiro
>
> _________________________________________________________
> Oi! Você quer um iG-mail gratuito?
> Então clique aqui: http://www.ig.com.br/paginas/assineigmail.html
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a