Partilhar via


Classe CDaoTableDef

Representa a definição armazenada de uma tabela base ou uma tabela anexada.

Observação

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

Sintaxe

class CDaoTableDef : public CObject

Membros

Construtores públicos

Nome Descrição
CDaoTableDef::CDaoTableDef Constrói um objeto CDaoTableDef.

Métodos públicos

Nome Descrição
CDaoTableDef::Append Adicione uma nova tabela ao banco de dados.
CDaoTableDef::CanUpdate Retorna sem zero se a tabela puder ser atualizada (você pode modificar a definição de campos ou as propriedades da tabela).
CDaoTableDef::Close Fecha um tabledef aberto.
CDaoTableDef::Create Cria uma tabela que pode ser adicionada ao banco de dados usando Append.
CDaoTableDef::CreateField Chamado para criar um campo para uma tabela.
CDaoTableDef::CreateIndex Chamado para criar um índice para uma tabela.
CDaoTableDef::DeleteField Chamado para excluir um campo de uma tabela.
CDaoTableDef::DeleteIndex Chamado para excluir um índice de uma tabela.
CDaoTableDef::GetAttributes Retorna um valor que indica uma ou mais características de um objeto CDaoTableDef.
CDaoTableDef::GetConnect Retorna um valor que fornece informações sobre a origem de uma tabela.
CDaoTableDef::GetDateCreated Retorna a data e a hora em que a tabela base subjacente a um objeto CDaoTableDef foi criada.
CDaoTableDef::GetDateLastUpdated Retorna a data e a hora da alteração mais recente feita no design da tabela base.
CDaoTableDef::GetFieldCount Retorna um valor que representa o número de campos na tabela.
CDaoTableDef::GetFieldInfo Retorna tipos específicos de informações sobre os campos na tabela.
CDaoTableDef::GetIndexCount Retorna o número de índices para a tabela.
CDaoTableDef::GetIndexInfo Retorna tipos específicos de informações sobre os índices da tabela.
CDaoTableDef::GetName Retorna o nome da tabela definido pelo usuário.
CDaoTableDef::GetRecordCount Retorna o número de registros na tabela.
CDaoTableDef::GetSourceTableName Retorna um valor que especifica o nome da tabela anexada no banco de dados de origem.
CDaoTableDef::GetValidationRule Retorna um valor que valida os dados em um campo à medida que são alterados ou adicionados a uma tabela.
CDaoTableDef::GetValidationText Retorna um valor que especifica o texto da mensagem que seu aplicativo exibirá se o valor de um objeto Field não atender à regra de validação especificada.
CDaoTableDef::IsOpen Retornará diferente de zero se a tabela estiver aberta.
CDaoTableDef::Open Abre um tabledef existente armazenado na coleção TableDefs do banco de dados.
CDaoTableDef::RefreshLink Atualiza as informações de conexão de uma tabela anexada.
CDaoTableDef::SetAttributes Define um valor que indica uma ou mais características de um objeto CDaoTableDef.
CDaoTableDef::SetConnect Define um valor que fornece informações sobre a origem de uma tabela.
CDaoTableDef::SetName Define o nome da tabela.
CDaoTableDef::SetSourceTableName Define um valor que especifica o nome de uma tabela anexada no banco de dados de origem.
CDaoTableDef::SetValidationRule Define um valor que valida os dados em um campo à medida que são alterados ou adicionados a uma tabela.
CDaoTableDef::SetValidationText Define um valor que especifica o texto da mensagem que seu aplicativo exibirá se o valor de um objeto Field não atender à regra de validação especificada.

Membros de Dados Públicos

Nome Descrição
CDaoTableDef::m_pDAOTableDef Um ponteiro para a interface DAO subjacente ao objeto tabledef.
CDaoTableDef::m_pDatabase O banco de dados de origem para esta tabela.

Comentários

Cada objeto de banco de dados DAO mantém uma coleção, chamada TableDefs, que contém todos os objetos tabledef da DAO salvos.

Você manipula uma definição de tabela usando um objeto CDaoTableDef. Por exemplo, você pode:

  • Examinar o campo e a estrutura de índice de qualquer tabela local, anexada ou externa em um banco de dados.

  • Chamar as funções membro SetConnect e SetSourceTableName para tabelas anexadas e use a função membro RefreshLink para atualizar as conexões com tabelas anexadas.

  • Chamar a função membro CanUpdate para determinar se você pode editar definições de campo na tabela.

  • Obter ou definir condições de validação usando as funções membro GetValidationRule, SetValidationRule, GetValidationText e SetValidationText.

  • Use a função membro Open para criar um objeto CDaoRecordset de tipo de tabela, dynaset ou instantâneo.

    Observação

    As classes de banco de dados do DAO são diferentes das classes de banco de dados MFC com base no ODBC (Open Database Connectivity). Todos os nomes de classe de banco de dados do DAO têm o prefixo "CDao". Você ainda pode acessar fontes de dados ODBC com as classes DAO; as classes DAO geralmente oferecem recursos superiores porque são específicas do mecanismo de banco de dados do Microsoft Jet.

Para usar objetos tabledef para trabalhar com uma tabela existente ou para criar uma tabela

  1. Em todos os casos, primeiro construa um objeto CDaoTableDef, fornecendo um ponteiro para um objeto CDaoDatabase ao qual a tabela pertence.

  2. Em seguida, faça o seguinte, dependendo do que você quiser:

    • Para usar uma tabela salva existente, chame a função membro Open do objeto tabledef, fornecendo o nome da tabela salva.

    • Para criar uma tabela, chame a função membro Criar do objeto tabledef, fornecendo o nome da tabela. Chame CreateField e CreateIndex para adicionar campos e índices à tabela.

    • Chame Append para salvar a tabela acrescentando-a à coleção TableDefs do banco de dados. Create coloca o tabledef em um estado aberto, portanto, depois de chamar Create você não chama Open.

      Dica

      A maneira mais fácil de criar tabelas salvas é criá-las e armazená-las no banco de dados usando o Microsoft Access. Em seguida, você pode abri-las e usá-las no seu código MFC.

Para usar o objeto tabledef que você abriu ou criou, crie e abra um objeto CDaoRecordset, especificando o nome do tabledef com um valor dbOpenTable no parâmetro nOpenType.

Para usar um objeto tabledef para criar um objeto CDaoRecordset, você normalmente cria ou abre um tabledef conforme descrito acima e, em seguida, constrói um objeto recordset, passando um ponteiro para o objeto tabledef quando você chama CDaoRecordset::Open. O tabledef que você passa precisa estar em um estado aberto. Para saber mais, confira a classe CDaoRecordset.

Quando terminar de usar um objeto tabledef, chame a respectiva função membro Close; em seguida, destrua o objeto tabledef.

Hierarquia de herança

CObject

CDaoTableDef

Requisitos

Cabeçalho: afxdao.h

CDaoTableDef::Append

Depois de chamar Create para criar um objeto tabledef, chame essa função membro para salvar o tabledef no banco de dados.

virtual void Append();

Comentários

A função acrescenta o objeto à coleção TableDefs do banco de dados. Você pode usar o tabledef como um objeto temporário e defini-lo não acrescentando-o, mas se você quiser salvar e usar o tabledef, precisará chamar Append.

Observação

Se você tentar acrescentar um tabledef sem nome (contendo uma cadeia de caracteres nula ou vazia), o MFC gerará uma exceção.

Para obter informações relacionadas, consulte o tópico "Método Append" na ajuda do DAO.

CDaoTableDef::CanUpdate

Chame essa função membro para determinar se a definição da tabela subjacente a um objeto CDaoTableDef pode ser alterada.

BOOL CanUpdate();

Valor de retorno

Diferente de zero se a estrutura da tabela (esquema) puder ser modificada (adicionar ou excluir campos e índices), caso contrário, 0.

Comentários

Por padrão, uma tabela recém-criada subjacente a um objeto CDaoTableDef pode ser atualizada e uma tabela anexada subjacente a um objeto CDaoTableDef não pode ser atualizada. Um objeto CDaoTableDef pode ser atualizável, mesmo que o conjunto de registros resultante não seja atualizável.

Para obter informações relacionadas, confira o tópico "Propriedade Restartable" na ajuda do DAO.

CDaoTableDef::CDaoTableDef

Constrói um objeto CDaoTableDef.

CDaoTableDef(CDaoDatabase* pDatabase);

Parâmetros

pDatabase
Um ponteiro para um objeto CDaoDatabase.

Comentários

Depois de construir o objeto, você precisa chamar a função membro Create ou Open. Quando terminar o procedimento com o objeto, você precisará chamar a função membro Close dele e destruir o objeto CDaoTableDef.

CDaoTableDef::Close

Chame essa função membro para fechar e liberar o objeto tabledef.

virtual void Close();

Comentários

Normalmente, após a chamar Close, você exclui o objeto tabledef se ele foi alocado com new.

Você pode chamar Open novamente depois de chamar Close. Isso permite reutilizar o objeto tabledef.

Para obter informações relacionadas, consulte o tópico "Método Close" na ajuda do DAO.

CDaoTableDef::Create

Chame essa função membro para criar uma tabela salva.

virtual void Create(
    LPCTSTR lpszName,
    long lAttributes = 0,
    LPCTSTR lpszSrcTable = NULL,
    LPCTSTR lpszConnect = NULL);

Parâmetros

lpszName
Um ponteiro para uma cadeia de caracteres contendo o nome da tabela.

lAttributes
Um valor correspondente às características da tabela representada pelo objeto tabledef. Você pode usar o bitwise-OR para combinar qualquer uma das seguintes constantes:

Constante Descrição
dbAttachExclusive Para bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet, indica que a tabela é uma tabela anexada aberta para uso exclusivo.
dbAttachSavePWD Para bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet, indica que a ID do usuário e a senha da tabela anexada são salvas com as informações de conexão.
dbSystemObject Indica que a tabela é uma tabela do sistema fornecida pelo mecanismo de banco de dados do Microsoft Jet.
dbHiddenObject Indica que a tabela é uma tabela oculta fornecida pelo mecanismo de banco de dados do Microsoft Jet.

lpszSrcTable
Um ponteiro para uma cadeia de caracteres contendo o nome da tabela de origem. Por padrão, esse valor é inicializado como NULL.

lpszConnect
Um ponteiro para uma cadeia de caracteres que contém a cadeia de conexão padrão. Por padrão, esse valor é inicializado como NULL.

Comentários

Depois de nomear o tabledef, você poderá chamar Append para salvar o tabledef na coleção de TableDefs do banco de dados. Depois de chamar Append, o tabledef está em um estado aberto e você pode usá-lo para criar um objeto CDaoRecordset.

Para obter informações relacionadas, confira o tópico "Método CreateTableDef" na ajuda do DAO.

CDaoTableDef::CreateField

Chame essa função membro para adicionar um campo à tabela.

void CreateField(
    LPCTSTR lpszName,
    short nType,
    long lSize,
    long lAttributes = 0);

void CreateField(CDaoFieldInfo& fieldinfo);

Parâmetros

lpszName
Um ponteiro para uma expressão de cadeia de caracteres que especifica o nome desse campo.

nType
Um valor que indica o tipo de dados do campo. A configuração pode ser um destes valores:

Tipo Tamanho (bytes) Descrição
dbBoolean 1 byte BOOL
dbByte BYTE
dbInteger 2 int
dbLong 4 longo
dbCurrency 8 Moeda (COleCurrency)
dbSingle 4 float
dbDouble 8 duplo
dbDate 8 Data/Hora (COleDateTime)
dbText 1 a 255 Texto (CString)
dbLongBinary 0 Binário Longo (Objeto OLE), CLongBinary ou CByteArray
dbMemo 0 Memo (CString)

lSize
Um valor que indica o tamanho máximo, em bytes, de um campo que contém texto ou o tamanho fixo de um campo que contém valores numéricos ou texto. O parâmetro lSize é ignorado para todos, exceto campos de texto.

lAttributes
Um valor correspondente às características do campo e que pode ser combinado usando um BITWISE-OR.

Constante Descrição
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 somente a um objeto Field em uma coleção Campos de um objeto Index). Se você omitir essa constante, o campo será classificado em ordem crescente (A – Z ou 0 – 100) (padrão).

fieldinfo
Uma referência a uma estrutura CDaoFieldInfo.

Comentários

Um objeto DAOField (OLE) é criado e acrescentado à coleção Campos do objeto DAOTableDef (OLE). 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. A primeira versão de CreateField é mais simples de usar, mas se você quiser um controle mais fino, poderá usar a segunda versão de CreateField, que usa um parâmetro CDaoFieldInfo.

Se você usar a versão de CreateField que usa um parâmetro CDaoFieldInfo, precisará definir cuidadosamente cada um dos seguintes membros da estrutura CDaoFieldInfo:

  • m_strName

  • m_nType

  • m_lSize

  • m_lAttributes

  • m_bAllowZeroLength

Os membros restantes de CDaoFieldInfo devem ser definidos como 0, FALSE ou uma cadeia de caracteres vazia, conforme apropriado para o membro; caso contrário, CDaoException pode ocorrer.

Para obter informações relacionadas, confira o tópico "Método CreateField" na ajuda do DAO.

CDaoTableDef::CreateIndex

Chame essa função para adicionar um índice a uma tabela.

void CreateIndex(CDaoIndexInfo& indexinfo);

Parâmetros

indexinfo
Uma referência a uma estrutura CDaoIndexInfo.

Comentários

Os índices especificam a ordem dos registros acessados das tabelas de banco de dados e se os registros duplicados são aceitos ou não. Os índices também fornecem acesso eficiente aos dados.

Você não precisa criar índices para tabelas, mas em tabelas grandes e não indexadas, acessar um registro específico ou criar um conjunto de registros pode levar muito tempo. Por outro lado, a criação de muitos índices reduz a velocidade das operações de atualização, acréscimo e exclusão, já que todos os índices são atualizados automaticamente. Considere esses fatores ao decidir quais índices criar.

Os seguintes membros da estrutura CDaoIndexInfo precisam ser definidos:

  • m_strName Um nome precisa ser fornecido.

  • m_pFieldInfos Precisa apontar para uma matriz de estruturas CDaoIndexFieldInfo.

  • m_nFields Precisa especificar o número de campos na matriz de estruturas CDaoFieldInfo.

Os membros restantes serão ignorados se definidos como FALSE. Além disso, o membro m_lDistinctCount é ignorado durante a criação do índice.

CDaoTableDef::DeleteField

Chame essa função membro para remover um campo e torná-lo inacessível.

void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);

Parâmetros

lpszName
Um ponteiro para uma expressão de cadeia de caracteres que é o nome de um campo existente.

nIndex
O índice do campo na coleção Campos baseado em zero da tabela, para pesquisa por índice.

Comentários

Você pode usar essa função membro em um novo objeto que não foi acrescentado ao banco de dados ou quando CanUpdate retorna diferente de zero.

Para obter informações relacionadas, confira o tópico "Método Delete" na ajuda do DAO.

CDaoTableDef::DeleteIndex

Chame essa função membro para excluir um índice em uma tabela subjacente.

void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);

Parâmetros

lpszName
Um ponteiro para uma expressão de cadeia de caracteres que é o nome de um índice existente.

nIndex
O índice de matriz do objeto de índice na coleção TableDefs baseada em zero do banco de dados, para pesquisa por índice.

Comentários

Você pode usar essa função membro em um novo objeto que não foi acrescentado ao banco de dados ou quando CanUpdate retorna diferente de zero.

Para obter informações relacionadas, confira o tópico "Método Delete" na ajuda do DAO.

CDaoTableDef::GetAttributes

Para um objeto CDaoTableDef, o valor retornado especifica características da tabela representada pelo objeto CDaoTableDef e pode ser uma soma dessas constantes:

long GetAttributes();

Valor de retorno

Retorna um valor que indica uma ou mais características de um objeto CDaoTableDef.

Comentários

Constante Descrição
dbAttachExclusive Para bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet, indica que a tabela é uma tabela anexada aberta para uso exclusivo.
dbAttachSavePWD Para bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet, indica que a ID do usuário e a senha da tabela anexada são salvas com as informações de conexão.
dbSystemObject Indica que a tabela é uma tabela do sistema fornecida pelo mecanismo de banco de dados do Microsoft Jet.
dbHiddenObject Indica que a tabela é uma tabela oculta fornecida pelo mecanismo de banco de dados do Microsoft Jet.
dbAttachedTable Indica que a tabela é uma tabela anexada de um banco de dados não ODBC, como um banco de dados Paradox.
dbAttachedODBC Indica que a tabela é uma tabela anexada de um banco de dados ODBC, como o Microsoft SQL Server.

Uma tabela do sistema é uma tabela criada pelo mecanismo de banco de dados do Microsoft Jet para conter várias informações internas.

Uma tabela oculta é uma tabela criada para uso temporário pelo mecanismo de banco de dados do Microsoft Jet.

Para obter informações relacionadas, confira o tópico "Propriedade Attributes" na ajuda do DAO.

CDaoTableDef::GetConnect

Chame essa função membro para obter a cadeia de conexão de uma fonte de dados.

CString GetConnect();

Valor de retorno

Um objeto CString que contém o caminho e o tipo de banco de dados da tabela.

Comentários

Para um objeto CDaoTableDef que representa uma tabela anexada, o objeto CString consiste em uma ou duas partes (um especificador de tipo de banco de dados e um caminho para o banco de dados).

O caminho, conforme mostrado na tabela abaixo, é o caminho completo para o diretório que contém os arquivos de banco de dados e precisa ser precedido pelo identificador "DATABASE=". Em alguns casos (como nos bancos de dados do Microsoft Jet e do Microsoft Excel), um nome de arquivo específico é incluído no argumento de caminho do banco de dados.

A tabela em CDaoTableDef::SetConnect mostra possíveis tipos de banco de dados e seus especificadores e caminhos de banco de dados correspondentes:

Para tabelas base de banco de dados do Microsoft Jet, o especificador é uma cadeia de caracteres vazia ("").

Se uma senha for necessária, mas não for fornecida, o driver ODBC exibirá uma caixa de diálogo de logon na primeira vez que uma tabela for acessada e novamente se a conexão for fechada e reaberta. Se uma tabela anexada tiver o atributo dbAttachSavePWD, o prompt de logon não será exibido quando a tabela for reaberta.

Para obter informações relacionadas, confira o tópico "Propriedade Connect" na ajuda do DAO.

CDaoTableDef::GetDateCreated

Chame essa função para determinar a data e a hora em que a tabela subjacente ao objeto CDaoTableDef foi criada.

COleDateTime GetDateCreated();

Valor de retorno

Um valor que contém a data e a hora da criação da tabela subjacente ao objeto CDaoTableDef.

Comentários

As configurações de data e hora são derivadas do computador no qual a tabela base foi criada ou atualizada pela última vez. Em um ambiente multiusuário, os usuários devem obter essas configurações diretamente do servidor de arquivos para evitar discrepâncias; ou seja, todos os clientes devem usar uma fonte de tempo "padrão" – talvez de um servidor.

Para obter informações relacionadas, confira o tópico "Propriedades DateCreated, LastUpdated" na ajuda do DAO.

CDaoTableDef::GetDateLastUpdated

Chame essa função para determinar a data e a hora em que a tabela subjacente ao objeto CDaoTableDef foi atualizada pela última vez.

COleDateTime GetDateLastUpdated();

Valor de retorno

Um valor que contém a data e a hora em que a tabela subjacente ao objeto CDaoTableDef foi atualizada pela última vez.

Comentários

As configurações de data e hora são derivadas do computador no qual a tabela base foi criada ou atualizada pela última vez. Em um ambiente multiusuário, os usuários devem obter essas configurações diretamente do servidor de arquivos para evitar discrepâncias; ou seja, todos os clientes devem usar uma fonte de tempo "padrão" – talvez de um servidor.

Para obter informações relacionadas, confira o tópico "Propriedades DateCreated, LastUpdated" na ajuda do DAO.

CDaoTableDef::GetFieldCount

Chame essa função membro para recuperar o número de campos definidos na tabela.

short GetFieldCount();

Valor de retorno

O número de campos no conjunto de registros.

Comentários

Se o valor dela é 0, não há objetos na coleção.

Para obter informações relacionadas, confira o tópico "Propriedade Count" na ajuda do DAO.

CDaoTableDef::GetFieldInfo

Chame essa função membro para obter vários tipos de informações sobre um campo definido no tabledef.

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parâmetros

nIndex
O índice do objeto de campo na coleção Campos baseada em zero da tabela, para pesquisa por índice.

fieldinfo
Uma referência a uma estrutura CDaoFieldInfo.

dwInfoOptions
Opções que especificam quais informações sobre o campo devem ser recuperadas. As opções disponíveis estão listadas aqui junto com o que elas fazem com que a função retorne:

  • AFX_DAO_PRIMARY_INFO (Padrão) Nome, Tipo, Tamanho, Atributos. Use essa opção para obter o desempenho mais rápido.

  • AFX_DAO_SECONDARY_INFO Informações primárias, mais: posição ordinal, obrigatório, permitir comprimento zero, ordem de ordenação, nome estrangeiro, campo de origem, tabela de origem

  • AFX_DAO_ALL_INFO Informações primárias e secundárias, além de: Regra de validação, Texto de validação e Valor padrão

lpszName
Um ponteiro para o nome do objeto de campo, para pesquisa por nome. O nome é uma cadeia de caracteres com até 64 caracteres que nomeia exclusivamente o campo.

Comentários

Uma versão da função permite pesquisar um campo por índice. A outra versão permite pesquisar um campo pelo nome.

Para obter uma descrição das informações retornadas, consulte a estrutura CDaoFieldInfo. Essa estrutura tem membros que correspondem aos itens de informações listados acima na descrição de dwInfoOptions. Quando você solicita informações em um nível, também obtém informações para qualquer nível anterior.

Para obter informações relacionadas, confira o tópico "Propriedade Attributes" na ajuda do DAO.

CDaoTableDef::GetIndexCount

Chame essa função membro para obter o número de índices de uma tabela.

short GetIndexCount();

Valor de retorno

O número de índices da tabela.

Comentários

Se o valor dela for 0, não haverá índices na coleção.

Para obter informações relacionadas, confira o tópico "Propriedade Count" na ajuda do DAO.

CDaoTableDef::GetIndexInfo

Chame essa função membro para obter vários tipos de informações sobre um índice definido na tabledef.

void GetIndexInfo(
    int nIndex,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetIndexInfo(
    LPCTSTR lpszName,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parâmetros

nIndex
O índice numérico do objeto Index na coleção Índices baseada em zero da tabela, para pesquisa pela posição dele na coleção.

indexinfo
Uma referência a uma estrutura CDaoIndexInfo.

dwInfoOptions
Opções que especificam quais informações sobre o índice a recuperar. As opções disponíveis estão listadas aqui junto com o que elas fazem com que a função retorne:

  • AFX_DAO_PRIMARY_INFO Nome, Informações de campo, Campos. Use essa opção para obter o desempenho mais rápido.

  • AFX_DAO_SECONDARY_INFO Informações primárias, além disso: Primário, Exclusivo, Clusterizado, Ignorar Nulos, Obrigatório, Estrangeiro

  • AFX_DAO_ALL_INFO Informações primárias e secundárias, além de: Contagem Distinta

lpszName
Um ponteiro para o nome do objeto de índice, para pesquisa por nome.

Comentários

Uma versão da função permite que você pesquise um índice pela posição dele na coleção. A outra versão permite pesquisar um índice pelo nome.

Para obter uma descrição das informações retornadas, consulte a estrutura CDaoIndexInfo. Essa estrutura tem membros que correspondem aos itens de informações listados acima na descrição de dwInfoOptions. Quando você solicita informações em um nível, também obtém informações para qualquer nível anterior.

Para obter informações relacionadas, confira o tópico "Propriedade Attributes" na ajuda do DAO.

CDaoTableDef::GetName

Chame essa função membro para obter o nome definido pelo usuário da tabela subjacente.

CString GetName();

Valor de retorno

Um nome definido pelo usuário para uma tabela.

Comentários

Esse nome começa com uma letra e pode conter no máximo 64 caracteres. Ele pode incluir números e caracteres sublinhados, mas não pode incluir pontuação nem espaços.

Para obter informações relacionadas, confira o tópico "Propriedade Name" na ajuda do DAO.

CDaoTableDef::GetRecordCount

Chame essa função membro para descobrir quantos registros estão em um objeto CDaoTableDef.

long GetRecordCount();

Valor de retorno

O número de registros acessados em um objeto tabledef.

Comentários

Chamar GetRecordCount para um objeto CDaoTableDef de tipo tabela reflete o número aproximado de registros na tabela e é afetado imediatamente à medida que os registros de tabela são adicionados e excluídos. As transações revertidas aparecerão como parte da contagem de registros até que você chame CDaoWorkSpace::CompactDatabase. Um objeto CDaoTableDef sem registros tem uma configuração de propriedade de contagem de registros de 0. Ao trabalhar com tabelas anexadas ou bancos de dados ODBC, GetRecordCount sempre retorna - 1.

Para obter informações relacionadas, confira o tópico "Propriedade RecordCount" na ajuda do DAO.

CDaoTableDef::GetSourceTableName

Chame essa função membro para recuperar o nome de uma tabela anexada em um banco de dados de origem.

CString GetSourceTableName();

Valor de retorno

Um objeto CString que especifica o nome de origem de uma tabela anexada ou uma cadeia de caracteres vazia se essa for uma tabela de dados nativa.

Comentários

Uma tabela anexada é uma tabela em outro banco de dados vinculado a um banco de dados do Microsoft Jet. Os dados das tabelas anexadas permanecem no banco de dados externo, onde podem ser manipulados por outros aplicativos.

Para obter informações relacionadas, confira o tópico "Propriedade SourceTableName" na Ajuda do DAO.

CDaoTableDef::GetValidationRule

Chame essa função membro para recuperar a regra de validação de um tabledef.

CString GetValidationRule();

Valor de retorno

Um objeto CString que valida os dados em um campo à medida que são alterados ou adicionados a uma tabela.

Comentários

As regras de validação são usadas em conexão com as operações de atualização. Se um tabledef contiver uma regra de validação, as atualizações para esse tabledef deverão corresponder aos critérios predeterminados antes que os dados sejam alterados. Se a alteração não corresponder aos critérios, uma exceção contendo o valor de GetValidationText será gerada. Para um objeto CDaoTableDef, essa CString é somente leitura para uma tabela anexada e leitura/gravação para uma tabela base.

Para obter informações relacionadas, consulte o tópico "Propriedade ValidationRule" na ajuda do DAO.

CDaoTableDef::GetValidationText

Chame essa função para recuperar a cadeia de caracteres a ser exibida quando um usuário inserir dados que não correspondam à regra de validação.

CString GetValidationText();

Valor de retorno

Um objeto CString que especifica o texto exibido se o usuário inserir dados que não correspondam à regra de validação.

Comentários

Para um objeto CDaoTableDef, essa CString é somente leitura para uma tabela anexada e leitura/gravação para uma tabela base.

Para obter informações relacionadas, consulte o tópico "Propriedade ValidationText" na ajuda do DAO.

CDaoTableDef::IsOpen

Chame essa função membro para determinar se o objeto CDaoTableDef está aberto no momento.

BOOL IsOpen() const;

Valor de retorno

Diferente de zero se o objeto CDaoTableDef está visível; caso contrário, 0.

Comentários

CDaoTableDef::m_pDatabase

Contém um ponteiro para o objeto CDaoDatabase para esta tabela.

Comentários

CDaoTableDef::m_pDAOTableDef

Contém um ponteiro para a interface OLE para o objeto tabledef DAO subjacente ao objeto CDaoTableDef.

Comentários

Use este ponteiro se precisar acessar a interface do DAO diretamente.

CDaoTableDef::Open

Chame essa função membro para abrir um tabledef salvo anteriormente na coleção TableDefs do banco de dados.

virtual void Open(LPCTSTR lpszName);

Parâmetros

lpszName
Um ponteiro para uma cadeia de caracteres que especifica um nome de tabela.

Comentários

Chame essa função membro para atualizar as informações de conexão de uma tabela anexada.

void RefreshLink();

Comentários

Você altera as informações de conexão de uma tabela anexada chamando SetConnect no objeto CDaoTableDef correspondente e, em seguida, usando a função membro RefreshLink para atualizar as informações. Quando você chama RefreshLink, as propriedades da tabela anexada não são alteradas.

Para forçar que as informações de conexão modificadas entrem em vigor, todos os objetos CDaoRecordset abertos com base neste tabledef precisam ser fechados.

Para obter informações relacionadas, confira o tópico "Método RefreshLink" na ajuda do DAO.

CDaoTableDef::SetAttributes

Define um valor que indica uma ou mais características de um objeto CDaoTableDef.

void SetAttributes(long lAttributes);

Parâmetros

lAttributes
Características da tabela representada pelo objeto CDaoTableDef e que pode ser uma soma destas constantes:

Constante Descrição
dbAttachExclusive Para bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet, indica que a tabela é uma tabela anexada aberta para uso exclusivo.
dbAttachSavePWD Para bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet, indica que a ID do usuário e a senha da tabela anexada são salvas com as informações de conexão.
dbSystemObject Indica que a tabela é uma tabela do sistema fornecida pelo mecanismo de banco de dados do Microsoft Jet.
dbHiddenObject Indica que a tabela é uma tabela oculta fornecida pelo mecanismo de banco de dados do Microsoft Jet.

Comentários

Ao definir vários atributos, você pode combiná-los resumindo as constantes apropriadas usando o operador OR bit a bit. A configuração de dbAttachExclusive em uma tabela não anexada produz uma exceção. A combinação dos seguintes valores também produz uma exceção:

  • dbAttachExclusive | dbAttachedODBC

  • dbAttachSavePWD | dbAttachedTable

Para obter informações relacionadas, confira o tópico "Propriedade Attributes" na ajuda do DAO.

CDaoTableDef::SetConnect

Para um objeto CDaoTableDef que representa uma tabela anexada, o objeto de cadeia de caracteres consiste em uma ou duas partes (um especificador de tipo de banco de dados e um caminho para o banco de dados).

void SetConnect(LPCTSTR lpszConnect);

Parâmetros

lpszConnect
Um ponteiro para uma expressão de cadeia de caracteres que especifica parâmetros adicionais a serem passados para drivers ODBC ou ISAM instaláveis.

Comentários

O caminho, conforme mostrado na tabela abaixo, é o caminho completo para o diretório que contém os arquivos de banco de dados e precisa ser precedido pelo identificador "DATABASE=". Em alguns casos (como nos bancos de dados do Microsoft Jet e do Microsoft Excel), um nome de arquivo específico é incluído no argumento de caminho do banco de dados.

Observação

Não inclua espaço em branco ao redor do sinal de igual nas instruções de caminho de entrada do formato "DATABASE=unidade:\\caminho". Isso resultará na geração de uma exceção e falha na conexão.

A seguinte tabela mostra possíveis tipos de banco de dados e os especificadores e caminhos de banco de dados correspondentes:

Tipo de banco de dados Especificador Caminho
Banco de dados usando o mecanismo de banco de dados Jet "[ database];" " drive:\\ caminho\\ nome_do_arquivo.MDB"
dBASE III "dBASE III;" " drive:\\ caminho"
dBASE IV "dBASE IV;" " drive:\\ caminho"
dBASE 5 "dBASE 5.0;" " drive:\\ caminho"
Paradox 3.x "Paradox 3.x;" " drive:\\ caminho"
Paradox 4.x "Paradox 4.x;" " drive:\\ caminho"
Paradox 5.x "Paradox 5.x;" " drive:\\ caminho"
Excel 3.0 "Excel 3.0;" " drive:\\ caminho\\ nome_do_arquivo.XLS"
Excel 4.0 "Excel 4.0;" " drive:\\ caminho\\ nome_do_arquivo.XLS"
Excel 5.0 or Excel 95 "Excel 5.0;" " drive:\\ caminho\\ nome_do_arquivo.XLS"
Excel 97 "Excel 8.0;" " drive:\\ caminho\ nome_do_arquivo.XLS"
HTML Import "HTML Import;" " drive:\\ caminho\ nome_do_arquivo"
HTML Export "HTML Export;" " drive:\\ caminho"
Texto "Text;" "unidade:\\caminho"
ODBC "ODBC; DATABASE= database; UID= usuário;PWD= senha; DSN= nomedafontededados; LOGINTIMEOUT= segundos;" (Isso pode não ser uma cadeia de conexão completa para todos os servidores; é apenas um exemplo. É muito importante não ter espaços entre os parâmetros.) Nenhum
Exchange "Exchange;

MAPILEVEL= caminho_da_pasta;

[TABLETYPE={ 0 | 1 };]

[PROFILE= perfil;]

[PWD= senha;]

[DATABASE= database;]"
"unidade:\\ caminho\\ nome_do_arquivo.MDB"

Observação

O Btrieve não é compatível com o DAO 3.5 nem versões posteriores.

Você precisa usar uma barra invertida dupla (\\) nas cadeias de conexão. Se você tiver modificado as propriedades de uma conexão existente usando SetConnect, precisará chamar RefreshLink posteriormente. Se você estiver inicializando as propriedades de conexão usando SetConnect, não precisará chamar RefreshLink, mas se você optar por fazê-lo, primeiro acrescente o tabledef.

Se uma senha for necessária, mas não for fornecida, o driver ODBC exibirá uma caixa de diálogo de logon na primeira vez que uma tabela for acessada e novamente se a conexão for fechada e reaberta.

Você pode definir a cadeia de conexão para um objeto CDaoTableDef fornecendo um argumento de origem para a função membro Create. Você pode verificar a configuração para determinar o tipo, o caminho, a ID do usuário, a senha ou a fonte de dados ODBC do banco de dados. Para obter mais informações, confira a documentação do driver específico.

Para obter informações relacionadas, confira o tópico "Propriedade Connect" na ajuda do DAO.

CDaoTableDef::SetName

Chame essa função membro para definir um nome definido pelo usuário para uma tabela.

void SetName(LPCTSTR lpszName);

Parâmetros

lpszName
Um ponteiro para uma expressão de cadeia de caracteres que especifica um nome para uma tabela.

Comentários

O nome precisa começar com uma letra e pode conter no máximo 64 caracteres. Ele pode incluir números e caracteres sublinhados, mas não pode incluir pontuação nem espaços.

Para obter informações relacionadas, confira o tópico "Propriedade Name" na ajuda do DAO.

CDaoTableDef::SetSourceTableName

Chame essa função membro para especificar o nome de uma tabela anexada ou o nome da tabela base na qual o objeto CDaoTableDef se baseia, pois ele existe na fonte de dados original.

void SetSourceTableName(LPCTSTR lpszSrcTableName);

Parâmetros

lpszSrcTableName
Um ponteiro para uma expressão de cadeia de caracteres que especifica um nome de tabela no banco de dados externo. Para uma tabela base, a configuração é uma cadeia de caracteres vazia ("").

Comentários

Em seguida, você precisa chamar RefreshLink. Essa configuração de propriedade está vazia para uma tabela base e leitura/gravação para uma tabela anexada ou um objeto não acrescentado a uma coleção.

Para obter informações relacionadas, confira o tópico "Propriedade SourceTableName" na Ajuda do DAO.

CDaoTableDef::SetValidationRule

Chame essa função membro para definir uma regra de validação para um tabledef.

void SetValidationRule(LPCTSTR lpszValidationRule);

Parâmetros

lpszValidationRule
Um ponteiro para uma expressão de cadeia de caracteres que valida uma operação.

Comentários

As regras de validação são usadas em conexão com as operações de atualização. Se um tabledef contiver uma regra de validação, as atualizações para esse tabledef deverão corresponder aos critérios predeterminados antes que os dados sejam alterados. Se a alteração não corresponder aos critérios, uma exceção contendo o texto de GetValidationText será gerada.

A validação será compatível apenas com bancos de dados que usam o mecanismo de banco de dados do Microsoft Jet. A expressão não pode se referir a funções definidas pelo usuário, funções de agregação de domínio, funções de agregação de SQL ou consultas. Uma regra de validação para um objeto CDaoTableDef pode se referir a vários campos nesse objeto.

Por exemplo, para campos nomeados hire_date e termination_date, uma regra de validação pode ser:

myTableDef.SetValidationRule(_T("termination_date > hire_date"));

Para obter informações relacionadas, consulte o tópico "Propriedade ValidationRule" na ajuda do DAO.

CDaoTableDef::SetValidationText

Chame essa função membro para definir o texto de exceção de uma regra de validação para um objeto CDaoTableDef com uma tabela base subjacente compatível com o mecanismo de banco de dados do Microsoft Jet.

void SetValidationText(LPCTSTR lpszValidationText);

Parâmetros

lpszValidationText
Um ponteiro para uma expressão de cadeia de caracteres que especifica o texto exibido se os dados inseridos são inválidos.

Comentários

Não é possível definir o texto de validação de uma tabela anexada.

Para obter informações relacionadas, consulte o tópico "Propriedade ValidationText" na ajuda do DAO.

Confira também

Classe CObject
Gráfico da hierarquia
Classe CDaoDatabase
Classe CDaoRecordset