Retorna um array contendo a estrutura da tabela aberta sob a Alias atual.
DBStruct()
Nome | Tipo | Descrição |
---|---|---|
aRet | vetor | Retorna um array com a estrutura dos campos. Cada elemento é um subarray contendo nome, tipo, tamanho e decimais. |
É 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. |
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