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

Veja também

  • Sem rótulos