Pessoal,
Estou trabalhando com ResultSetMetaData para pegar informações sobre o banco que estou usando (nome da coluna, tamanho, decimais, …).
Como faço para buscar a descrição de uma coluna?
Abraço.
Pessoal,
Estou trabalhando com ResultSetMetaData para pegar informações sobre o banco que estou usando (nome da coluna, tamanho, decimais, …).
Como faço para buscar a descrição de uma coluna?
Abraço.
Acho que “descrição” não tem, mas tem um campo chamado “label”, sei lá se é o que você quer. (Nem sabia que dava para pôr uma descrição em um campo de uma tabela se a criássemos via DDL - aqueles comandos do SQL do tipo “Create Table”).
String getColumnLabel(int column) Gets the designated column's suggested title for use in printouts and displays. String getColumnName(int column) Get the designated column's name.Na verdade o getColumnName e o getColumnLabel estão trazendo a mesma informação, ou seja, o nome do campo.
Tenho uma tabela em Access, por exemplo, que tem descrição de cada campo. É essa informação que não consigo buscar.
Acho que isso você não vai conseguir obter (ainda mais com o ODBC-JDBC Bridge, que implementa uma versão muito antiga da especificação JDBC). Talvez se você usar algum driver que acessa diretamente o Access (já ouvi falar de alguns, mas não sei assim de cor).
Vou dar uma procurada aqui.
Valeu!
Também estou no mesmo barco… porém o banco de dados é o SQL Server 2000.
Já tentei de tudo… mas a descrição da coluna não vem.
Se eu descobrir alguma coisa colocarei aqui…
Note que isso é coisa do driver usado. Não sei, por exemplo, se o driver da Microsoft ou o JTDS suportam ler a descrição e retorná-la em getColumnLabel - acho que isso não é requisito para obter uma certificação que o driver suporta ODBC 2.0 ou 3.0.
Se isso for ABSOLUTAMENTE indispensável, você pode fazer uma query em uma das pseudo-tabelas (sei lá se se chama “systables” ou outra coisa) que representam a configuração do SQL para obter esse dado. Não estou com a documentação do MS SQL Server aqui, mas não deve ser difícil - o único problema é que talvez você terá de se logar com algum usuário especial no banco. (A menos que você já esteja usando a famigerada combinação “usuário = sa, senha = branco”.)
Só pra tirar uma dúvida, seria essa consulta que você se refere?
Banco oracle:
SELECT * FROM DBA_COL_COMMENTS
WHERE TABLE_name = '<nome da tabela>';
Seria os comentários das colunas?
Na verdade eu quero usar o meta data pra ser genérico o programa, independente de qual banco eu use.
select Name as [Nome da empresa]
getLabel() pegaria “Nome da empresa”. Mas como apontado, depende do driver.
o problema aqui eh que nem todo banco implementa esse campo…