USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Descobrir tipo e tamanho de campos da tabela
Semmer
CURITIBA
PR - BRASIL
Postada em 04/11/2004 07:31 hs            
Estou montando uma função que transforma em texto determinados registros de uma tabela. Como poderá ser usado em diversas tabelas de diversos sistemas que desenvolvi, preciso descobrir quais campos existem em uma determinada tabela e de quais tipos e tamanho (no caso de texto), porque vou usar esta informação para formatar o texto que vou criar. Se alguém souber algum comando ou função que retorne estas informações, por favor me conta...
 
Desde já obrigado.
     
Sandro
não registrado
Postada em 04/11/2004 11:19 hs   
Bem, você terá que usar um loop passeando pela coleção Fields do recordset, tanto a DAO, quando a ADO possuem esta coleção.
Seria algo do tipo:
    For each Field in Rs.Fields
    ...
    Next
Dentro do loop, para obter as informações de cada campo faça o seguinte
    Nome = Field.Name
    Tamanho = Field.Size (ou Tamanho = Field.DefinedSize)
    Tipo = Field.Type
Se você estiver usado a DAO, para obter estas informações, deverá usar Field.Size, mas se estiver usando a ADO, use Field.DefinedSize, esta é uma bobagem da Microsoft quando usou o Unicode no Access e SQL Server, que armazenam cada caracter em 32 bits ao invés de 16, assim, a propriedade size retorna duas vezes o tamanho do campo, enquanto que DefinedSize retorna o tamanho correto. Atenção para o retorno de Field.Size, pois ele retorna um número representando o tipo de dado do campo. O problema é que a ADO e a DAO possuem tipos de dados diferentes, por isso você deve consultar a ajuda do VB ou da DAO/ADO. Para detalhes.
Um abraço,
Sandro
     
Semmer
CURITIBA
PR - BRASIL
Postada em 04/11/2004 11:35 hs            
Valeu xara!!! Funcionou, agora só vou testar tipos diferentes pra descobrir o código de cada um já que o type vem como número.

Abraço

Sandro Semmer
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página