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
eSetSourceTableName
para tabelas anexadas e use a função membroRefreshLink
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
eSetValidationText
.Use a função membro
Open
para criar um objetoCDaoRecordset
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
Em todos os casos, primeiro construa um objeto
CDaoTableDef
, fornecendo um ponteiro para um objeto CDaoDatabase ao qual a tabela pertence.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 chamarCreate
você não chamaOpen
.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
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 estruturasCDaoIndexFieldInfo
.m_nFields
Precisa especificar o número de campos na matriz de estruturasCDaoFieldInfo
.
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 origemAFX_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, EstrangeiroAFX_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
CDaoTableDef::RefreshLink
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