Compartilhar via


Estrutura CDaoFieldInfo

A estrutura CDaoFieldInfo contém informações sobre um objeto de campo definido para DAO (objetos de acesso a dados).

O DAO tem suporte por meio do Office 2013. O DAO 3.6 é a versão final e é considerado obsoleto.

Sintaxe

struct CDaoFieldInfo
{
    CString m_strName;           // Primary
    short m_nType;               // Primary
    long m_lSize;                // Primary
    long m_lAttributes;          // Primary
    short m_nOrdinalPosition;    // Secondary
    BOOL m_bRequired;            // Secondary
    BOOL m_bAllowZeroLength;     // Secondary
    long m_lCollatingOrder;      // Secondary
    CString m_strForeignName;    // Secondary
    CString m_strSourceField;    // Secondary
    CString m_strSourceTable;    // Secondary
    CString m_strValidationRule; // All
    CString m_strValidationText; // All
    CString m_strDefaultValue;   // All
};

Parâmetros

m_strName
Nomeia exclusivamente o objeto de campo. Para detalhes, confira o tópico "Propriedade Name" na Ajuda do DAO.

m_nType
Um valor que indica o tipo de dados do campo. Para detalhes, confira o tópico "Propriedade Type" na Ajuda do DAO. O valor dessa propriedade pode ser um dos seguintes:

  • dbBoolean Sim/Não, o mesmo que TRUE/FALSE

  • dbByte Byte

  • dbInteger Curto

  • dbLong Longo

  • dbCurrency Moeda; confira a classe MFC COleCurrency

  • dbSingle Simples

  • dbDouble Duplo

  • dbDate Data/Hora; confira a classe do MFC COleDateTime

  • dbText Texto; confira a classe CString

  • dbLongBinary Binário Longo (Objeto OLE); talvez você queira usar a classe do MFC CByteArray em vez de classe CLongBinary, pois CByteArray é mais avançada e fácil de usar.

  • dbMemo Memorando; confira a classe do MFC CString

  • dbGUID Um identificador global exclusivo/identificador universal exclusivo usado com chamadas de procedimento remoto. Para mais informações, confira o tópico "Propriedade Type" na Ajuda do DAO.

Observação

Não use tipos de dados de cadeia de caracteres para dados binários. Isso faz com que seus dados passem pela camada de tradução Unicode/ANSI, resultando em aumento de sobrecarga e possivelmente em tradução inesperada.

m_lSize
Um valor que indica o tamanho máximo, em bytes, de um objeto de campo DAO que contém texto ou o tamanho fixo de um objeto de campo que contém valores numéricos ou texto. Para detalhes, confira o tópico "Propriedade Size" na Ajuda do DAO. Os tamanhos podem ter um dos seguintes valores:

Tipo Tamanho (bytes) Descrição
dbBoolean 1 byte Sim/Não (o mesmo que True/False)
dbByte 1 Byte
dbInteger 2 Inteiro
dbLong 4 Longo
dbCurrency 8 Moeda (COleCurrency)
dbSingle 4 Single
dbDouble 8 Double
dbDate 8 Data/Hora (COleDateTime)
dbText 1 a 255 Texto (CString)
dbLongBinary 0 Binário Longo (Objeto OLE; CByteArray; usar em vez de CLongBinary)
dbMemo 0 Memorando (CString)
dbGUID 16 Um identificador global exclusivo/identificador universalmente exclusivo usado com chamadas de procedimento remoto.

m_lAttributes
Especifica características de um objeto de campo contido por um objeto tabledef, recordset, querydef ou index. O valor retornado pode ser uma soma dessas constantes, criadas com o operador C++ OR bit a bit (|):

  • dbFixedField O tamanho do campo é fixo (padrão para campos numéricos).

  • dbVariableField O tamanho do campo é variável (somente campos de texto).

  • dbAutoIncrField O valor do campo para novos registros é incrementado automaticamente para um inteiro longo exclusivo que não pode ser alterado. É compatível apenas com tabelas de banco de dados do Microsoft Jet.

  • dbUpdatableField O valor do campo pode ser alterado.

  • dbDescending O campo é classificado em ordem decrescente (Z – A ou 100 – 0) (aplica-se apenas a um objeto de campo em uma coleção Campos de um objeto de índice; no MFC, os objetos de índice estão contidos em objetos tabledef). Se você omitir essa constante, o campo será classificado em ordem crescente (A – Z ou 0 – 100) (padrão).

Ao verificar a configuração dessa propriedade, você pode usar o operador C++ AND bit a bit (&) para testar um atributo específico. Ao definir vários atributos, você pode combiná-los combinando as constantes apropriadas com o operador OR bit a bit (|). Para obter detalhes, confira o tópico "Propriedade Attributes" na Ajuda do DAO.

m_nOrdinalPosition
Um valor que especifica a ordem numérica na qual você deseja que um campo representado por um objeto de campo do DAO seja exibido em relação a outros campos. Você pode definir esta propriedade com CDaoTableDef::CreateField. Para detalhes, confira o tópico "Propriedade OrdinalPosition" na Ajuda do DAO.

m_bRequired
Indica se um objeto de campo do DAO exige um valor não nulo. Se essa propriedade for TRUE, o campo não permitirá um valor nulo. Se Required for definida como FALSE, o campo poderá conter valores nulos, bem como valores que atendem às condições especificadas pelas configurações da propriedade AllowZeroLength e ValidationRule. Para detalhes, confira o tópico "Propriedade Required" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_bAllowZeroLength
Indica se uma cadeia de caracteres vazia ("") é um valor válido de um objeto de campo DAO com um tipo de dados Text ou Memo. Se essa propriedade for TRUE, uma cadeia de caracteres vazia será um valor válido. Você pode definir essa propriedade como FALSE para garantir que você não possa usar uma cadeia de caracteres vazia para definir o valor de um campo. Para detalhes, confira o tópico "Propriedade AllowZeroLength" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_lCollatingOrder
Especifica a sequência da ordem de classificação no texto para comparação ou classificação de cadeias de caracteres. Para obter detalhes, confira o tópico "Personalizando configurações do Registro do Windows para acesso a dados" na Ajuda do DAO. Para obter uma lista dos valores retornados possíveis, confira o membro m_lCollatingOrder da estrutura CDaoDatabaseInfo. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strForeignName
Um valor que, em uma relação, especifica o nome do objeto de campo do DAO em uma tabela estrangeira que corresponde a um campo em uma tabela primária. Para detalhes, confira o tópico "Propriedade ForeignName" na Ajuda do DAO.

m_strSourceField
Indica o nome do campo que é a fonte original dos dados de um objeto de campo do DAO contido por um objeto tabledef, recordset ou querydef. Essa propriedade indica o nome de campo original associado a um objeto de campo. Por exemplo, você pode usar essa propriedade para determinar a fonte original dos dados em um campo de consulta cujo nome não está relacionado ao nome do campo na tabela subjacente. Para detalhes, confira o tópico "Propriedades SourceField, SourceTable" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strSourceTable
Indica o nome da tabela que é a fonte original dos dados de um objeto de campo do DAO contido por um objeto tabledef, recordset ou querydef. Essa propriedade indica o nome da tabela original associado a um objeto de campo. Por exemplo, você pode usar essa propriedade para determinar a fonte original dos dados em um campo de consulta cujo nome não está relacionado ao nome do campo na tabela subjacente. Para detalhes, confira o tópico "Propriedades SourceField, SourceTable" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strValidationRule
Um valor que valida os dados em um campo à medida que são alterados ou adicionados a uma tabela. Para detalhes, confira o tópico "Propriedade ValidationRule" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

Para obter informações relacionadas sobre tabledefs, confira o membro m_strValidationRule da estrutura CDaoTableDefInfo.

m_strValidationText
Um valor que especifica o texto da mensagem que seu aplicativo exibe se o valor de um objeto de campo do DAO não atende à regra de validação especificada pela configuração da propriedade ValidationRule. Para detalhes, confira o tópico "Propriedade ValidationText" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strDefaultValue
O valor padrão de um objeto de campo do DAO. Quando um registro é criado, a configuração da propriedade DefaultValue é inserida automaticamente como o valor do campo. Para detalhes, confira o tópico "Propriedade DefaultValue" na Ajuda do DAO. Você pode definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

Comentários

As referências a Primário, Secundário e Todos acima indicam como as informações são retornadas pela função membro GetFieldInfo nas classes CDaoTableDef, CDaoQueryDef e CDaoRecordset.

Os objetos de campo não são representados por uma classe MFC. Em vez disso, os objetos DAO subjacentes aos objetos MFC das seguintes classes contêm coleções de objetos de campo: CDaoTableDef, CDaoRecordset e CDaoQueryDef. Essas classes fornecem funções membro para acessar alguns itens individuais de informações de campo, ou você pode acessá-las de uma só vez com um objeto CDaoFieldInfo chamando a função membro GetFieldInfo do objeto recipiente.

Além do uso da função CDaoFieldInfo para examinar propriedades de objeto, você também pode usá-la para construir um parâmetro de entrada para criar campos em um tabledef. Há opções mais simples disponíveis para essa tarefa, mas se você quiser um controle mais refinado, poderá usar a versão de CDaoTableDef::CreateField que usa um parâmetro CDaoFieldInfo.

As informações recuperadas pela função membro GetFieldInfo (da classe que contém o campo) são armazenadas em uma estrutura CDaoFieldInfo. Chame a função membro GetFieldInfo do objeto recipiente em cuja coleção Campos o objeto de campo está armazenado. CDaoFieldInfo também define uma função membro Dump em builds de depuração. Você pode usar Dump para despejar o conteúdo de um objeto CDaoFieldInfo.

Requisitos

Cabeçalho: afxdao.h

Confira também

Estruturas, estilos, retornos de chamada e mapas de mensagem
CDaoTableDef::GetFieldInfo
CDaoRecordset::GetFieldInfo
CDaoQueryDef::GetFieldInfo