Partilhar via


Estrutura CDaoFieldInfo

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

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

Observação

DAO é suportado através 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 de forma única o objeto de campo. Para mais detalhes, consulte o tópico "Nome de Propriedade" na Ajuda do DAO.

m_nType
Um valor que indica o tipo de dado do campo. Para mais detalhes, consulte o tópico "Propriedade de Tipo" no DAO Help. O valor desta propriedade pode ser um dos seguintes:

  • dbBoolean Sim/Não, igual a VERDADEIRO/FALSO

  • dbByte Byte

  • dbInteger Curto

  • dbLong Longo

  • dbCurrency Moeda; ver classe MFC COleCurrency

  • dbSingle Single

  • dbDouble Duplo

  • dbDate Data/Hora; ver classe MFC COleDateTime

  • dbText Texto; ver classe MFC CString

  • dbLongBinary Binário Longo (Objeto OLE); Podes querer usar a classe MFC CByteArray em vez da classe, CLongBinary pois CByteArray é mais rica e fácil de usar.

  • dbMemo Memorando; ver classe MFC CString

  • dbGUID Um Identificador Globalmente Único/Identificador Universalmente Único usado com chamadas de procedimentos remotos. Para mais informações, consulte o tópico "Propriedade de Tipo" no DAO Help.

Observação

Não use tipos de dados string para dados binários. Isto faz com que os seus dados passem pela camada de tradução Unicode/ANSI, resultando em maior sobrecarga e possivelmente traduções inesperadas.

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 texto ou valores numéricos. Para mais detalhes, consulte o tópico "Tamanho da Propriedade" no DAO Help. Os tamanhos podem ser um dos seguintes valores:

Tipo Tamanho (bytes) Description
dbBoolean 1 byte Sim/Não (igual a Verdadeiro/Falso)
dbByte 1 Byte
dbInteger 2 Número inteiro
dbLong 4 Longo
dbCurrency 8 Moeda (COleCurrency)
dbSingle 4 Solteiro
dbDouble 8 Double
dbDate 8 Data/Hora (COleDateTime)
dbText 1 - 255 Texto (CString)
dbLongBinary 0 Binário longo (OLE Object; CByteArray; usar em vez de CLongBinary)
dbMemo 0 Memorando (CString)
dbGUID 16 Um Identificador Globalmente Único/Identificador Universalmente Único usado com chamadas de procedimentos remotos.

m_lAttributes
Especifica as características de um objeto de campo contido por um tabledef, recordet, querydef ou objeto index. O valor devolvido pode ser a soma destas constantes, criada com o operador bit a bit OR (|) em C++:

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

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

  • dbAutoIncrField O valor do campo para novos registos é automaticamente incrementado para um único inteiro longo que não pode ser alterado. Só é suportado para tabelas de bases de dados Microsoft Jet.

  • dbUpdatableField O valor do campo pode ser alterado.

  • dbDescending O campo está ordenado em ordem decrescente (Z - A ou 100 - 0) (aplica-se apenas a um objeto campo numa coleção Fields de um objeto index; no MFC, os objetos índice estão eles próprios contidos em objetos tabledef). Se omitir esta constante, o campo está ordenado em ordem crescente (A - Z ou 0 - 100) (padrão).

Ao verificar a definição desta propriedade, pode usar o operador bit a bit AND de C++ (&) para testar um atributo específico. Ao definir múltiplos atributos, pode combiná-los combinando as constantes apropriadas com o operador bit a bit OR (|). Para mais detalhes, consulte o tópico "Propriedade de Atributos" na Ajuda DAO.

m_nOrdinalPosition
Um valor que especifica a ordem numérica em que se quer que um campo representado por um objeto de campo DAO seja apresentado em relação a outros campos. Pode definir esta propriedade com CDaoTableDef::CreateField. Para mais detalhes, consulte o tópico "Propriedade OrdinalPosition" na Ajuda DAO.

m_bRequired
Indica se um objeto de campo DAO requer um valor não-Nulo. Se esta propriedade for VERDADEIRA, o campo não permite um valor Nulo. Se Required estiver definido como FALSE, o campo pode conter valores Nulos, bem como valores que cumpram as condições especificadas pelas definições AllowZeroLength e ValidationRule. Para mais detalhes, consulte o tópico "Propriedade Necessária" no DAO Help. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_bAllowZeroLength
Indica se uma string vazia ("") é um valor válido de um objeto de campo DAO com um tipo de dado Texto ou Memo. Se esta propriedade for VERDADEIRA, uma cadeia vazia é um valor válido. Pode definir esta propriedade para FALSE para garantir que não pode usar uma string vazia para definir o valor de um campo. Para mais detalhes, consulte o tópico "AllowZeroLength Property" em Ajuda DAO. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_lCollatingOrder
Especifica a sequência da ordem de ordenação no texto para comparação ou ordenação de cadeias. Para mais detalhes, consulte o tópico "Personalização das Definições do Registo do Windows para Acesso a Dados" na Ajuda do DAO. Para uma lista dos valores possíveis devolvidos, veja o m_lCollatingOrder membro da estrutura CDaoDatabaseInfo . Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strForeignName
Um valor que, numa relação, especifica o nome do objeto de campo DAO numa tabela estrangeira que corresponde a um campo numa tabela primária. Para mais detalhes, consulte o tópico "Foreignname Property" no DAO Help.

m_strSourceField
Indica o nome do campo que é a fonte original dos dados para um objeto de campo DAO contido por um objeto tabledef, recordet ou querydef. Esta propriedade indica o nome original do campo associado a um objeto de campo. Por exemplo, pode usar esta propriedade para determinar a origem original dos dados num campo de consulta cujo nome não está relacionado com o nome do campo na tabela subjacente. Para mais detalhes, consulte o tópico "SourceField, SourceTable Properties" na Ajuda do DAO. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strSourceTable
Indica o nome da tabela que é a fonte original dos dados para um objeto de campo DAO contido por um objeto tabledef, recordet ou querydef. Esta propriedade indica o nome original da tabela associado a um objeto de campo. Por exemplo, pode usar esta propriedade para determinar a origem original dos dados num campo de consulta cujo nome não está relacionado com o nome do campo na tabela subjacente. Para mais detalhes, consulte o tópico "SourceField, SourceTable Properties" na Ajuda do DAO. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strValidationRule
Um valor que valida os dados num campo à medida que são alterados ou adicionados a uma tabela. Para detalhes, consulte o tópico "ValidationRule Property" na Ajuda DAO. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

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

m_strValidationText
Um valor que especifica o texto da mensagem que a sua aplicação apresenta se o valor de um objeto de campo DAO não satisfaz a regra de validação especificada pela definição de propriedade ValidationRule. Para mais detalhes, consulte o tópico "ValidationText Property" na Ajuda DAO. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

m_strDefaultValue
O valor padrão de um objeto de campo DAO. Quando um novo registo é criado, a definição da propriedade DefaultValue é automaticamente introduzida como o valor do campo. Para mais detalhes, consulte o tópico "Propriedade DefaultValue" na Ajuda DAO. Podes definir esta propriedade para um tabledef com CDaoTableDef::CreateField.

Observações

As referências a Primário, Secundário e Todos acima indicam como a informação é devolvida pela GetFieldInfo função membro 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. Estas classes fornecem funções membros para aceder a alguns itens individuais de informação de campo, ou pode aceder a todas de uma vez com um CDaoFieldInfo objeto chamando a GetFieldInfo função membro do objeto que o contém.

Além da sua utilização para examinar propriedades de objetos, também pode usar CDaoFieldInfo para construir um parâmetro de entrada para criar novos campos numa definição de tabela. Existem opções mais simples para esta tarefa, mas se quiser um controlo mais fino, pode usar a versão do CDaoTableDef::CreateField que recebe um CDaoFieldInfo parâmetro.

A informação recuperada pela GetFieldInfo função membro (da classe que contém o corpo) é armazenada numa CDaoFieldInfo estrutura. Chama a GetFieldInfo função membro do objeto que contém cuja coleção de Campos o objeto campo está armazenado. CDaoFieldInfo também define uma Dump função membro em builds de depuração. Podes usar Dump para despejar o conteúdo de um CDaoFieldInfo objeto.

Requerimentos

Cabeçalho:afxdao.h

Consulte também

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