Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Representa uma definição de consulta, ou "querydef", geralmente uma que está guardada numa base de dados.
Observação
O Objeto de Acesso a Dados (DAO) é suportado através do Office 2013. O DAO 3.6 é a versão final e está obsoleto.
Sintaxe
class CDaoQueryDef : public CObject
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CDaoQueryDef::CDaoQueryDef | Constrói um CDaoQueryDef objeto. Próxima chamada Open ou Create, dependendo das suas necessidades. |
Métodos Públicos
| Nome | Description |
|---|---|
| CDaoQueryDef::Append | Adiciona o querydef à coleção QueryDefs da base de dados como uma consulta guardada. |
| CDaoQueryDef::CanUpdate | Retorna diferente de zero se a consulta puder atualizar a base de dados. |
| CDaoQueryDef::Fechar | Fecha o objeto querydef. Destrói o objeto C++ quando terminares com ele. |
| CDaoQueryDef::Create | Cria o objeto de querydef do DAO subjacente. Use o querydef como uma consulta temporária, ou ligue Append para o guardar na base de dados. |
| CDaoQueryDef::Execute | Executa a consulta definida pelo objeto querydef. |
| CDaoQueryDef::GetConnect | Devolve a cadeia de ligação associada ao querydef. A cadeia de ligação identifica a fonte de dados. (Apenas para consultas de passagem SQL; caso contrário, uma cadeia vazia.) |
| CDaoQueryDef::GetDateCreated | Devolve a data em que a consulta guardada foi criada. |
| CDaoQueryDef::GetDateLastUpdated | Devolve a data em que a consulta guardada foi atualizada pela última vez. |
| CDaoQueryDef::GetFieldCount | Devolve o número de campos definidos pelo querydef. |
| CDaoQueryDef::GetFieldInfo | Devolve informação sobre um campo especificado definido na consulta. |
| CDaoQueryDef::GetName | Devolve o nome do querydef. |
| CDaoQueryDef::GetODBCTimeout | Devolve o valor de timeout usado pelo ODBC (para uma consulta ODBC) quando a consulta é executada, o que determina quanto tempo permitir que a ação da consulta seja concluída. |
| CDaoQueryDef::GetParameterCount | Devolve o número de parâmetros definidos para a consulta. |
| CDaoQueryDef::GetParameterInfo | Devolve informação sobre um parâmetro especificado à consulta. |
| CDaoQueryDef::GetParamValue | Devolve o valor de um parâmetro especificado à consulta. |
| CDaoQueryDef::GetRecordsAffected | Devolve o número de registos afetados por uma consulta de ação. |
| CDaoQueryDef::GetReturnsRecords | Retorna diferente de zero se a consulta definida pelo querydef devolve registos. |
| CDaoQueryDef::GetSQL | Devolve a string SQL que especifica a consulta definida pelo querydef. |
| CDaoQueryDef::GetType | Devolve o tipo de consulta: delete, update, append, make-table, e assim sucessivamente. |
| CDaoQueryDef::IsOpen | Retorna diferente de zero se o querydef estiver aberto e puder ser executado. |
| CDaoQueryDef::Open | Abre um querydef existente armazenado na coleção QueryDefs da base de dados. |
| CDaoQueryDef::SetConnect | Define a string de ligação para uma consulta SQL pass-through numa fonte de dados ODBC. |
| CDaoQueryDef::SetName | Define o nome da consulta guardada, substituindo o nome em uso quando a query def foi criada. |
| CDaoQueryDef::SetODBCTimeout | Define o valor de timeout usado pelo ODBC (para uma consulta ODBC) quando a query def é executada. |
| CDaoQueryDef::SetParamValue | Define o valor de um parâmetro especificado para a consulta. |
| CDaoQueryDef::SetReturnsRecords | Especifica se o querydef devolve registos. Definir este atributo como TRUE só é válido para consultas pass-through SQL. |
| CDaoQueryDef::SetSQL | Define a string SQL que especifica a consulta definida pelo querydef. |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| CDaoQueryDef::m_pDAOQueryDef | Um apontador para a interface OLE para o objeto de def de consulta DAO subjacente. |
| CDaoQueryDef::m_pDatabase | Um apontador para o CDaoDatabase objeto com o qual o querydef está associado. O querydef pode estar guardado na base de dados ou não. |
Observações
Um querydef é um objeto de acesso a dados que contém a instrução SQL que descreve uma consulta e as suas propriedades, como "Data de Criação" e "ODBC Timeout". Também pode criar objetos querydef temporários sem os guardar, mas é conveniente — e muito mais eficiente — guardar consultas frequentemente reutilizadas numa base de dados. Um objeto CDaoDatabase mantém uma coleção, chamada coleção QueryDefs, que contém os seus querydefs guardados.
Observação
As classes de base de dados DAO são distintas das classes de base de dados Microsoft Foundation Class (MFC) baseadas em Open Database Connectivity (ODBC). Todos os nomes de classes de base de dados DAO têm o prefixo "CDao". Ainda podes aceder a fontes de dados ODBC com as classes DAO. Em geral, as classes MFC baseadas em DAO são mais capazes do que as classes MFC baseadas em ODBC; as classes baseadas em DAO podem aceder a dados, incluindo através de drivers ODBC, através do seu próprio motor de base de dados. As classes baseadas em DAO também suportam operações de Linguagem de Definição de Dados (DDL), como adicionar tabelas através das classes, sem necessidade de chamar diretamente o DAO.
Usage
Use objetos querydef para trabalhar com uma consulta guardada existente ou para criar uma nova consulta guardada ou uma consulta temporária:
Em todos os casos, constrói primeiro um
CDaoQueryDefobjeto, fornecendo um ponteiro para o objeto CDaoDatabase ao qual a consulta pertence.Depois faz o seguinte, dependendo do que pretendes:
Para usar uma consulta guardada existente, chame a função membro Open do objeto querydef, fornecendo o nome da consulta guardada.
Para criar uma nova consulta guardada, chame a função Create member do objeto querydef, fornecendo o nome da consulta. Depois chama o Append para guardar a consulta, anexando-a à coleção QueryDefs da base de dados.
Createcoloca o querydef num estado aberto, por isso, depois de ligarCreate, não chamasOpen.Para criar um querydef temporário, chame
Create. Passe uma string vazia para o nome da consulta. Não liguesAppend.
Quando terminar de usar um objeto querydef, chame a sua função membro Close ; Depois destruir o objeto Querydef.
Sugestão
A forma mais fácil de criar consultas guardadas é criá-las e armazená-las na tua base de dados usando o Microsoft Access. Depois podes abri-los e usá-los no teu código MFC.
Finalidades
Pode usar um objeto querydef para qualquer um dos seguintes propósitos:
Para criar um
CDaoRecordsetobjetoChamar a função membro do
Executeobjeto para executar diretamente uma consulta de ação ou uma consulta SQL pass-through
Pode usar um objeto querydef para qualquer tipo de consulta, incluindo select, action, crosstab, delete, update, append, make-table, definição de dados, SQL pass-through, union e consultas em massa. O conteúdo da instrução SQL que fornece determina o tipo da consulta. Para informações sobre tipos de consulta, consulte as Execute funções e GetType membro. Os conjuntos de registos são comumente usados para consultas que retornam linhas, geralmente consultas que usam o SELECT ... DE palavras-chave.
Execute é mais comummente utilizado para operações a granel. Para obter mais informações, consulte Execute e CDaoRecordset.
Defs de Consulta e Conjuntos de Registos
Para usar um objeto querydef para criar um CDaoRecordset objeto, normalmente cria-se ou abre um querydef conforme descrito anteriormente. Depois, constrói um objeto de recordet, passando um ponteiro para o teu objeto querydef quando chamas CDaoRecordset::Open. O querydef que passas deve estar num estado aberto. Para mais informações, veja a classe CDaoRecordset.
Não podes usar um querydef para criar um conjunto de registos (o uso mais comum para um querydef) a menos que esteja num estado aberto. Coloque a def da consulta em estado aberto chamando ou OpenCreate.
Bases de Dados Externas
Os objetos Querydef são a forma preferida de usar o dialeto SQL nativo de um motor de base de dados externo. Por exemplo, pode criar uma consulta Transact SQL (como usada no Microsoft SQL Server) e armazená-la num objeto querydef. Quando precisar de usar uma consulta SQL que não seja baseada no motor de base de dados Microsoft Jet, deve fornecer uma cadeia de ligação que aponte para a fonte de dados externa. Consultas com strings de ligação válidas contornam o motor da base de dados e encaminham a consulta diretamente para o servidor externo de base de dados para processamento.
Sugestão
A forma preferida de trabalhar com tabelas ODBC é anexá-las a um Microsoft Jet (. MDB).
Para informações relacionadas, consulte os tópicos "QueryDef Object", "QueryDefs Collection" e "CdbDatabase Object" no SDK do DAO.
Hierarquia de herança
CDaoQueryDef
Requerimentos
Cabeçalho:afxdao.h
CDaoQueryDef::Append
Chame esta função membro depois de chamar Create para criar um novo objeto querydef.
virtual void Append();
Observações
Append guarda o querydef na base de dados ao adicionar o objeto à coleção QueryDefs da base de dados. Pode usar o querydef como objeto temporário sem o adicionar, mas se quiser que persista, deve chamar Append.
Se tentar adicionar um objeto querydef temporário, o MFC lança uma exceção do tipo CDaoException.
CDaoQueryDef::CanUpdate
Chame esta função membro para determinar se pode modificar o querydef — como mudar o seu nome ou a sua string SQL.
BOOL CanUpdate();
Valor de retorno
Não nulo se conseguir modificar o querydef; caso contrário, 0.
Observações
Pode modificar o querydef se:
Não se baseia numa base de dados aberta apenas leitura.
Tens permissões de atualização para a base de dados.
Isto depende se implementaste ou não funcionalidades de segurança. O MFC não oferece suporte para segurança; deve implementá-la você mesmo, ligando diretamente para o DAO ou usando o Microsoft Access. Consulte o tópico "Propriedade de Permissões" na Ajuda DAO.
CDaoQueryDef::CDaoQueryDef
Constrói um CDaoQueryDef objeto.
CDaoQueryDef(CDaoDatabase* pDatabase);
Parâmetros
pDatabase
Um apontador para um objeto aberto CDaoDatabase .
Observações
O objeto pode representar um querydef existente armazenado na coleção QueryDefs da base de dados, uma nova consulta a ser armazenada na coleção, ou uma consulta temporária, que não deve ser armazenada. O seu próximo passo depende do tipo de def. da consulta:
Se o objeto representa um querydef existente, chame a função Open member do objeto para o inicializar.
Se o objeto representar um novo querydef a guardar, chame a função Create member do objeto. Isto adiciona o objeto à coleção QueryDefs da base de dados. Depois, chama
CDaoQueryDeffunções membros para definir os atributos do objeto. Por fim, liga para o Append.Se o objeto representar um querydef temporário (que não deve ser guardado na base de dados), chame
Create, passando uma string vazia para o nome da consulta. Após chamarCreate, inicialize o querydef definindo diretamente os seus atributos. Não liguesAppend.
Para definir os atributos do querydef, pode usar as funções membros SetName, SetSQL, SetConnect, SetODBCTimeout e SetReturnsRecords .
Quando terminar com o objeto querydef, chame a sua função de membro Close . Se tiver um ponteiro para o querydef, use o delete operador para destruir o objeto C++.
CDaoQueryDef::Fechar
Chame esta função membro quando terminar de usar o objeto querydef.
virtual void Close();
Observações
Fechar o querydef liberta o objeto DAO subjacente, mas não destrói o objeto de querydef DAO guardado nem o objeto C++ CDaoQueryDef . Isto não é o mesmo que CDaoDatabase::D eleteQueryDef, que apaga o querydef da coleção QueryDefs da base de dados no DAO (se não for um querydef temporário).
CDaoQueryDef::Create
Chame esta função membro para criar uma nova consulta guardada ou uma nova consulta temporária.
virtual void Create(
LPCTSTR lpszName = NULL,
LPCTSTR lpszSQL = NULL);
Parâmetros
lpszName
O nome único da consulta guardado na base de dados. Para detalhes sobre a cadeia, consulte o tópico "CreateQueryDef Method" na Ajuda do DAO. Se aceitar o valor padrão, uma cadeia vazia, é criado um querydef temporário. Tal consulta não é guardada na coleção QueryDefs.
lpszSQL
A string SQL que define a consulta. Se aceitar o valor predefinido de NULL, terá de chamar depois o SetSQL para definir a string. Até lá, a consulta permanece indefinida. No entanto, pode-se usar a consulta indefinida para abrir um conjunto de registos; ver Observações para mais detalhes. A instrução SQL deve estar definida antes de poder adicionar o querydef à coleção QueryDefs.
Observações
Se passar um nome em lpszName, pode então chamar o Append para guardar o querydef na coleção QueryDefs da base de dados. Caso contrário, o objeto é um querydef temporário e não é guardado. Em qualquer dos casos, o querydef está em estado aberto, e pode usá-lo para criar um objeto CDaoRecordset ou chamar a função Execute member do querydef.
Se não forneceres uma instrução SQL em lpszSQL, não podes executar a consulta com Execute ela, mas podes usá-la para criar um conjunto de registos. Nesse caso, o MFC utiliza a instrução SQL padrão do conjunto de registos.
CDaoQueryDef::Execute
Chame esta função membro para executar a consulta definida pelo objeto querydef.
virtual void Execute(int nOptions = dbFailOnError);
Parâmetros
nOpções
Um inteiro que determina as características da consulta. Para informações relacionadas, consulte o tópico "Método de Execução" na Ajuda do DAO. Pode usar o operador bitwise-OR (|) para combinar as seguintes constantes para este argumento:
dbDenyWriteNegar permissão de escrita a outros utilizadores.dbInconsistentAtualizações inconsistentes.dbConsistentAtualizações consistentes.dbSQLPassThroughPassagem SQL. Faz com que a instrução SQL seja passada para uma base de dados ODBC para processamento.dbFailOnErrorValor padrão. Reverter atualizações se ocorrer um erro e reportar o erro ao utilizador.dbSeeChangesGera um erro em tempo de execução se outro utilizador estiver a alterar os dados que estás a editar.
Observação
Para uma explicação dos termos "inconsistente" e "consistente", veja o tópico "Método de Execução" na Ajuda do DAO.
Observações
Os objetos querydef usados para execução desta forma só podem representar um dos seguintes tipos de consulta:
Consultas de ação
Consultas pass-through SQL
Execute não funciona para consultas que devolvem registos, como as consultas selecionadas.
Execute é comumente usado para consultas de operações em massa, como UPDATE, INSERT ou SELECT INTO, ou para operações de linguagem de definição de dados (DDL).
Sugestão
A forma preferida de trabalhar com fontes de dados ODBC é anexar tabelas a um Microsoft Jet (. MDB). Para mais informações, consulte o tópico "Aceder a Bases de Dados Externas com DAO" na Ajuda para DAO.
Chame a função membro GetRecordsAffected do objeto querydef para determinar o número de registos afetados pela chamada mais recente Execute . Por exemplo, GetRecordsAffected devolve informação sobre o número de registos eliminados, atualizados ou inseridos ao executar uma consulta de ação. A contagem devolvida não reflete alterações nas tabelas relacionadas quando estão em vigor atualizações ou eliminações em cascata.
Se incluir ambos dbInconsistent e dbConsistent ou se não incluir nenhum, o resultado é o padrão, dbInconsistent.
Execute Não devolve um conjunto de registos. Usar Execute numa consulta que seleciona registos faz com que a MFC lance uma exceção do tipo CDaoException.
CDaoQueryDef::GetConnect
Chame esta função membro para obter a cadeia de ligação associada à fonte de dados do querydef.
CString GetConnect();
Valor de retorno
A contendo CString a cadeia de ligação para o querydef.
Observações
Esta função é usada apenas com fontes de dados ODBC e certos drivers ISAM. Não é usado com bases de dados Microsoft Jet (.MDB); neste caso, GetConnect devolve uma cadeia vazia. Para obter mais informações, consulte SetConnect.
Sugestão
A forma preferida de trabalhar com tabelas ODBC é anexá-las a um . Base de dados MDB. Para mais informações, consulte o tópico "Aceder a Bases de Dados Externas com DAO" na Ajuda para DAO.
Para informações sobre strings de ligação, consulte o tópico "Conectar Propriedade" na Ajuda do DAO.
CDaoQueryDef::GetDateCreated
Chame esta função membro para obter a data em que o objeto querydef foi criado.
COleDateTime GetDateCreated();
Valor de retorno
Um objeto COleDateTime contendo a data e hora em que o querydef foi criado.
Observações
Para informações relacionadas, consulte o tópico "DateCreated, LastUpdated Properties" na Ajuda do DAO.
CDaoQueryDef::GetDateLastUpdated
Chame esta função membro para obter a data em que o objeto querydef foi atualizado pela última vez — quando alguma das suas propriedades foi alterada, como o seu nome, a sua cadeia SQL ou a sua cadeia de conexão.
COleDateTime GetDateLastUpdated();
Valor de retorno
Um objeto contendo a data e hora em que COleDateTime o querydef foi atualizado pela última vez.
Observações
Para informações relacionadas, consulte o tópico "DateCreated, LastUpdated Properties" na Ajuda do DAO.
CDaoQueryDef::GetFieldCount
Chame esta função membro para recuperar o número de campos na consulta.
short GetFieldCount();
Valor de retorno
O número de campos definidos na consulta.
Observações
GetFieldCount é útil para percorrer todos os campos no querydef. Para esse fim, use GetFieldCount com GetFieldInfo.
CDaoQueryDef::GetFieldInfo
Chame esta função membro para obter vários tipos de informação sobre um campo definido no querydef.
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 baseado em zero do campo desejado na coleção Fields do querydef, para consulta por índice.
fieldinfo
Uma referência a um CDaoFieldInfo objeto que devolve a informação solicitada.
dwInfoOptions
Opções que especificam que informação sobre o campo recuperar. As opções disponíveis estão listadas aqui juntamente com o que fazem a função devolver:
AFX_DAO_PRIMARY_INFO (Padrão) Nome, Tipo, Tamanho, Atributos
AFX_DAO_SECONDARY_INFO Informação primária mais: Posição Ordinal, Obrigatória, Permitir Comprimento Zero, Campo de Fonte, Nome Estrangeiro, Tabela de Fonte, Ordem de Colagem
AFX_DAO_ALL_INFO Informação primária e secundária mais: Valor Padrão, Texto de Validação, Regra de Validação
lpszName
Uma cadeia contendo o nome do campo desejado, para pesquisa por nome. Pode usar um CString.
Observações
Para uma descrição da informação devolvida no fieldinfo, consulte a estrutura CDaoFieldInfo . Esta estrutura tem membros que correspondem à informação descritiva em dwInfoOptions acima. Se pedir um nível de informação, também obtém quaisquer níveis anteriores de informação.
CDaoQueryDef::GetName
Chame esta função membro para recuperar o nome da consulta representada pelo querydef.
CString GetName();
Valor de retorno
O nome da consulta.
Observações
Os nomes de Querydef são nomes únicos definidos pelo utilizador. Para mais informações sobre nomes de querydef, veja o tópico "Propriedade do Nome" na Ajuda do DAO.
CDaoQueryDef::GetODBCTimeout
Chame esta função membro para recuperar o limite de tempo atual antes de uma consulta a uma fonte de dados ODBC expirar.
short GetODBCTimeout();
Valor de retorno
O número de segundos antes de uma consulta expira.
Observações
Para informações sobre este limite de tempo, consulte o tópico "ODBCTimeout Property" na Ajuda DAO.
Sugestão
A forma preferida de trabalhar com tabelas ODBC é anexá-las a um Microsoft Jet (. MDB). Para mais informações, consulte o tópico "Aceder a Bases de Dados Externas com DAO" na Ajuda para DAO.
CDaoQueryDef::GetParameterCount
Chame esta função membro para recuperar o número de parâmetros na consulta guardada.
short GetParameterCount();
Valor de retorno
O número de parâmetros definidos na consulta.
Observações
GetParameterCount é útil para passar por todos os parâmetros no querydef. Para esse fim, use GetParameterCount com GetParameterInfo.
Para informações relacionadas, consulte os tópicos "Parameter Object", "Parameters Collection" e "PARAMETERS Declaration (SQL)" na Ajuda do DAO.
CDaoQueryDef::GetParameterInfo
Chame esta função membro para obter informação sobre um parâmetro definido na querydef.
void GetParameterInfo(
int nIndex,
CDaoParameterInfo& paraminfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetParameterInfo(
LPCTSTR lpszName,
CDaoParameterInfo& paraminfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Parâmetros
nIndex
O índice baseado em zero do parâmetro desejado na coleção Parameters do querydef, para consulta por índice.
paraminfo
Uma referência a um objeto CDaoParameterInfo que devolve a informação solicitada.
dwInfoOptions
Opções que especificam que informação sobre o parâmetro recuperar. A opção disponível está listada aqui juntamente com o que faz com que a função retorne:
-
AFX_DAO_PRIMARY_INFO(Padrão) Nome, Tipo
lpszName
Uma cadeia contendo o nome do parâmetro desejado, para pesquisa por nome. Pode usar um CString.
Observações
Para uma descrição da informação devolvida em paraminfo, veja a CDaoParameterInfo estrutura. Esta estrutura tem elementos que correspondem à informação descritiva abaixo dwInfoOptions acima.
Para informações relacionadas, consulte o tópico "PARAMETERS Declaration (SQL)" na Ajuda do DAO.
CDaoQueryDef::GetParamValue
Chame esta função membro para recuperar o valor atual do parâmetro especificado armazenado na coleção Parameters do querydef.
virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);
Parâmetros
lpszName
O nome do parâmetro cujo valor queres, para pesquisa por nome.
nIndex
O índice baseado em zero do parâmetro na coleção Parameters do querydef, para consulta por índice. Pode obter este valor com chamadas para GetParameterCount e GetParameterInfo.
Valor de retorno
Um objeto da classe COleVariant que contém o valor do parâmetro.
Observações
Pode aceder ao parâmetro pelo nome ou pela sua posição ordinal na coleção.
Para informações relacionadas, consulte o tópico "PARAMETERS Declaration (SQL)" na Ajuda do DAO.
CDaoQueryDef::GetRecordsAffected
Chame esta função de membro para determinar quantos registos são afetados pela última chamada de Execute.
long GetRecordsAffected();
Valor de retorno
O número de registos afetados.
Observações
A contagem devolvida não reflete alterações nas tabelas relacionadas quando estão em vigor atualizações ou eliminações em cascata.
Para informações relacionadas, consulte o tópico "Propriedade Afetada por Registos" na Ajuda DAO.
CDaoQueryDef::GetReturnsRecords
Chame esta função membro para determinar se o querydef se baseia numa consulta que devolve registos.
BOOL GetReturnsRecords();
Valor de retorno
Diferente de zero se o querydef for baseado numa consulta que devolve registos; caso contrário, 0.
Observações
Esta função membro é usada apenas para consultas pass-through em SQL. Para mais informações sobre consultas SQL, consulte a função Executar membro. Para mais informações sobre como trabalhar com consultas pass-through SQL, consulte a função membro SetReturnsRecords .
Para informações relacionadas, consulte o tópico "ReturnsRecords Property" na Ajuda DAO.
CDaoQueryDef::GetSQL
Chame esta função membro para recuperar a instrução SQL que define a consulta em que o querydef se baseia.
CString GetSQL();
Valor de retorno
A instrução SQL que define a consulta em que o querydef se baseia.
Observações
Podes analisar a cadeia para palavras-chave, nomes de tabelas, e assim por diante.
Para informações relacionadas, consulte os tópicos "Propriedade SQL", "Comparação entre Microsoft Jet Database Engine SQL e ANSI SQL" e "Consultar uma Base de Dados com SQL em Código" na Ajuda do DAO.
CDaoQueryDef::GetType
Chame esta função membro para determinar o tipo de consulta do querydef.
short GetType();
Valor de retorno
O tipo de consulta definido pelo querydef. Para valores, veja Observações.
Observações
O tipo de consulta é definido pelo que especificas na string SQL do querydef quando crias o querydef ou chamas a função membro SetSQL de um querydef existente. O tipo de consulta devolvido por esta função pode ser um dos seguintes valores:
dbQSelectSelecionardbQActionAçãodbQCrosstabTabela cruzadadbQDeleteSuprimirdbQUpdateAtualizaçãodbQAppendAnexardbQMakeTableMake-tabledbQDDLDefinição de dadosdbQSQLPassThroughPassagemdbQSetOperationUniãodbQSPTBulkUsado comdbQSQLPassThroughpara especificar uma consulta que não devolve registos.
Observação
Para criar uma consulta pass-through SQL, não definas a dbSQLPassThrough constante. Isto é definido automaticamente pelo motor de base de dados Microsoft Jet quando crias um objeto querydef e defines a string de ligação.
Para informações sobre strings SQL, veja GetSQL. Para informações sobre tipos de consulta, veja Executar.
CDaoQueryDef::IsOpen
Chame esta função membro para determinar se o CDaoQueryDef objeto está atualmente aberto.
BOOL IsOpen() const;
Valor de retorno
Não nulo se o CDaoQueryDef objeto estiver atualmente aberto; caso contrário, 0.
Observações
Um querydef deve estar num estado aberto antes de o usar para chamar Execute ou criar um CDaoRecordset objeto. Para colocar um querydef num estado aberto, chame ( Create para um novo querydef) ou Open (para um querydef existente).
CDaoQueryDef::m_pDatabase
Contém um ponteiro para o objeto CDaoDatabase associado ao objeto querydef.
Observações
Use este ponteiro se precisar de aceder diretamente à base de dados. Por exemplo, para obter ponteiros para outros objectos de querydef ou conjuntos de registos nas coleções da base de dados.
CDaoQueryDef::m_pDAOQueryDef
Contém um ponteiro para a interface OLE para o objeto querydef do DAO subjacente.
Observações
Este ponteiro é fornecido para completude e consistência com as outras classes. No entanto, como o MFC encapsula bastante bem os querydefs do DAO, é pouco provável que precises dele. Se o usares, faça-o com cautela. Em particular, não mudes o valor do ponteiro a menos que saibas o que estás a fazer.
CDaoQueryDef::Open
Chame esta função membro para abrir um querydef previamente guardado na coleção QueryDefs da base de dados.
virtual void Open(LPCTSTR lpszName = NULL);
Parâmetros
lpszName
Uma cadeia que contém o nome do querydef guardado para abrir. Pode usar um CString.
Observações
Uma vez aberto o querydef, podes chamar a sua Execute função membro ou usar o querydef para criar um CDaoRecordset objeto.
CDaoQueryDef::SetConnect
Chame esta função membro para definir a cadeia de ligação do objeto querydef.
void SetConnect(LPCTSTR lpszConnect);
Parâmetros
lpszConnect
Uma cadeia que contém uma cadeia de ligação para o objeto CDaoDatabase associado.
Observações
A cadeia de ligação é usada para passar informação adicional ao ODBC e a certos drivers ISAM conforme necessário. Não é usado para bases de dados Microsoft Jet (.MDB).
Sugestão
A forma preferida de trabalhar com tabelas ODBC é anexá-las a um . Base de dados MDB.
Antes de executar um querydef que represente uma consulta SQL pass-through para uma fonte de dados ODBC, defina a cadeia de ligação com SetConnect e chame SetReturnsRecords para especificar se a consulta retorna registos.
Para mais informações sobre a estrutura da cadeia de ligação e exemplos de componentes da cadeia de ligação, consulte o tópico "Propriedade de Conexão" na Ajuda do DAO.
CDaoQueryDef::SetName
Chama esta função membro se quiseres mudar o nome de um querydef que não seja temporário.
void SetName(LPCTSTR lpszName);
Parâmetros
lpszName
Uma string que contém o novo nome para uma consulta não temporária no objeto CDaoDatabase associado.
Observações
Os nomes de Querydef são nomes únicos, definidos pelo utilizador. Pode ligar SetName antes de o objeto querydef ser adicionado à coleção QueryDefs.
CDaoQueryDef::SetODBCTimeout
Chame esta função membro para definir o limite de tempo antes de uma consulta a uma fonte de dados ODBC expirar.
void SetODBCTimeout(short nODBCTimeout);
Parâmetros
nODBCTimeout
O número de segundos antes de uma consulta expira.
Observações
Esta função membro permite-lhe sobrepor o número padrão de segundos antes de as operações subsequentes na fonte de dados ligada "timeout". Uma operação pode expirar devido a problemas de acesso à rede, tempo excessivo de processamento de consultas, e assim por diante. Chame SetODBCTimeout antes de executar uma consulta com este querydef se quiser alterar o valor do tempo limite da consulta. (Como o ODBC reutiliza ligações, o valor de timeout é o mesmo para todos os clientes na mesma ligação.)
O valor padrão para os tempos de espera das consultas é 60 segundos.
CDaoQueryDef::SetParamValue
Chame esta função membro para definir o valor de um parâmetro no querydef em tempo de execução.
virtual void SetParamValue(
LPCTSTR lpszName,
const COleVariant& varValue);
virtual void SetParamValue(
int nIndex,
const COleVariant& varValue);
Parâmetros
lpszName
O nome do parâmetro cujo valor queres definir.
varValue
O valor a definir; ver Observações.
nIndex
A posição ordinal do parâmetro na coleção Parameters do querydef. Pode obter este valor com chamadas para GetParameterCount e GetParameterInfo.
Observações
O parâmetro deve já estar estabelecido como parte da cadeia SQL do querydef. Pode aceder ao parâmetro pelo nome ou pela sua posição ordinal na coleção.
Especifique o valor a definir como COleVariant objeto. Para informações sobre como definir o valor e o tipo desejados no seu COleVariant objeto, veja a classe COleVariant.
CDaoQueryDef::SetReturnsRecords
Chame esta função membro como parte do processo de configuração de uma consulta SQL pass-through para uma base de dados externa.
void SetReturnsRecords(BOOL bReturnsRecords);
Parâmetros
bReturnsRecords
Pass TRUE se a consulta numa base de dados externa devolver registos; caso contrário, FALSO.
Observações
Nesse caso, deve criar o querydef e definir as suas propriedades usando outras CDaoQueryDef funções membros. Para uma descrição de bases de dados externas, veja SetConnect.
CDaoQueryDef::SetSQL
Chame esta função membro para definir a instrução SQL que o querydef executa.
void SetSQL(LPCTSTR lpszSQL);
Parâmetros
lpszSQL
Uma cadeia contendo uma instrução SQL completa, adequada para execução. A sintaxe desta cadeia depende do SGBD que a sua consulta direciona. Para uma discussão sobre a sintaxe usada no motor de base de dados Microsoft Jet, consulte o tópico "Construção de Instruções SQL em Código" na Ajuda do DAO.
Observações
Um uso típico de SetSQL é configurar um objeto querydef para uso numa consulta pass-through SQL. (Para a sintaxe das consultas pass-through SQL no seu SGBD de destino, consulte a documentação do seu SGBD.)
Consulte também
CObject Classe
Gráfico de Hierarquia
CDaoRecordset Classe
CDaoDatabase Classe
CDaoTableDef Classe
CDaoException Classe