Hey JavaMans… Tenho uma dúvida em relação a listagem de campos de uma tabela de banco de dados (postgresql)… Bom…tenho um sistema que prescisa listar os campos de uma tabela do banco, e para isso montei o seguinte “trecho” de código
[code]
try {
Statement stmt = connection.createStatement();
ResultSet rset = stmt.executeQuery("SELECT * from " + tabela);
ResultSetMetaData rsmd = rset.getMetaData();
// retorna o numero total de colunas
int numColunas = rsmd.getColumnCount();
// loop para recuperar os metadados de cada coluna
for (int i=0; i<numColunas; i++) {
String[] strColuna = new String[5];
strColuna[0] = rsmd.getColumnName (i + 1);
strColuna[1] = "" + rsmd.getColumnType (i + 1) ;
strColuna[2] = rsmd.getColumnTypeName (i + 1);
strColuna[3] = "" + rsmd.getColumnDisplaySize (i + 1);
strColuna[4] = "" + rsmd.getScale(i + 1);
vtColunas.addElement(strColuna);
}
} catch (SQLException e) {
System.err.println("Não foi possível recuperar informações referentes à tabela especificada" + e);
e.printStackTrace();
}[/code]
Onde consigo recuperar entre outras coisas os nomes das tabelas, tipo de campos, tamanho, etc… Mas falta uma coisa que para este sistema é muito importante que vem a ser a identificação de chaves primárias e chaves estrangeiras, sendo que esta última tenho que saber também de que tabela é proveniente… mas até agora não achei uma maneira de localizá-las… Se alguém souber… eu agradeço…
Atenciosamente…Leopoldo