Retorna um array contendo a estrutura da tabela aberta sob a Alias atual.
Sintaxe
DBStruct()
Retorno
Nome | Tipo | Descrição |
---|---|---|
aRet | vetor | Retorna um array com a estrutura dos campos. Cada elemento é um subarray contendo nome, tipo, tamanho e decimais. |
Observações
- Essa função é utilizada para recuperar a estrutura da tabela corrente. Esse mesmo array é usado para criar a tabela, por exemplo através da função DBCreate.
É retornado um array bidimensional onde cada linha corresponde a um campo da estrutura e cada coluna a seguinte informação:
Posição
Tipo
Tamanho
Descrição
1
C
10 bytes
Contém o nome do campo da tabela.
2
C
1 byte
Contém o tipo do campo da tabela. Pode ser: "C" (Caractere), "N" (Numérico), "L" (Lógico), "D" (Data) ou "M" (Memo).
3
N
-
Contém o tamanho do campo.
4
N
-
Contém a quantidade de casas decimais que o campo pode armazenar, desde que o campo seja do tipo "N". Para os demais tipos, esta informação retorna sempre com 0 (zero).
A informação retornada na terceira coluna do array, correspondendo ao tamanho do campo, está condicionada ao tipo do campo.
Tipo
Descrição
C
O tamanho retornado corresponde ao tamanho de string máxima que pode ser armazenado na coluna.
D
É retornado sempre 8 bytes.
L
É retornado sempre 1 byte.
M
É retornado sempre 10 bytes. Observação: É importante lembrar que, este valor é retornado por compatibilidade e não corresponde a capacidade real de armazenamento da coluna. O tamanho máximo de armazenamento de uma coluna do tipo "M" está condicionada ao driver RDD utilizado.
N
Juntamente com o valor retornado na quarta posição, quantidade de decimais, informa a capacidade de armazenamento de valores numéricos no campo.
Exemplos
user function test() Local nHandle := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 ) Local cTable := "SA1990" Local cRDD := "TOPCONN" DBUseArea( .T., cRDD, cTable, (cTable), .F., .T. ) // Exibe a estrutura da tabela apontada em cTable varinfo( "struct", DBStruct() ) DBCloseArea() TCUnlink( nHandle ) return