ResultSetMetaData

3 respostas
K

Preciso verificar se os campos de uma tabela são ou não not null.
Estou usando o objeto ResultSetMetaData para obter informações dos campos de uma tabela.

rs = stmt.executeQuery("Select * from "+tableName);
rsmd = rs.getMetaData();

Estou usando rsmd.columnNoNulls para saber se o campo é ou não nullo, mas sempre retorna 0, sendo ou não o campo not null.

Alguém pode me dizer o q estou fazendo de errado? Será que devou usar outro método para fazer esta verificação?

3 Respostas

J

Intaum kra… o que acontece é que esse campo que você está usando é uma constante, o que você deve fazer é chamar o método isNullable e verificar com uma das 3 constantes dessa classe:
columnNoNulls
columnNullable
columnNullableUnknown

Espero ter ajudado…
Flw…

K

Como assim? Vc poderia explicar melhor?

Tentei colocar: int result = rsmd.isNullable(rsmd.columnNoNulls);
Mas isso não funciona, pois onde fica o campo da tabela nessa história. Preciso verificar para cada campo.

Vc poderia me dar um exemplo de como pode ser feito?

K

Hum, agora deu certo! Fiz assim:

public int[] isNotNull(String tableName, String campo) throws SQLException, Exception

{

rs = stmt.executeQuery("Select * from "+tableName);

rsmd = rs.getMetaData();

int result;

int[] campos = new int[rsmd.getColumnCount()];
try
	{
		for (int i=1; i<=rsmd.getColumnCount();i++)
	    {
			result = rsmd.isNullable(i);
			campos[i] = result;
		}    
	}
	catch(SQLException sqle)
	{
	   return campos;
	}
	return campos;
	
}

Valeu!!
t++

Criado 21 de fevereiro de 2005
Ultima resposta 22 de fev. de 2005
Respostas 3
Participantes 2