CRecordset:: Open

virtualBOOLAberto (UINTnOpenType=AFX_DB_USE_DEFAULT_TYPE,LPCTSTRlpszSQL=nula,DWORDdwOptions=nenhum);
lançar ( CDBException, CMemoryException );

Valor de retorno

Diferente de zero se o objeto CRecordset foi aberto com êxito; caso contrário 0 se CDatabase:: AAbrir (se chamado) retornará 0.

Parâmetros

nOpenType

Aceite o valor padrão, AFX_DB_USE_DEFAULT_TYPE, ou use um dos seguintes valores de enum OpenType:

lpszSQL

Um ponteiro de Cadeia de caracteres que contém um dos seguintes:

dwOptions

Uma máscara de bits que pode especificar uma combinação dos valores listados abaixo. Alguns destes são mutuamente exclusivos. O valor padrão é none.

Observações

Você deve chamar esta função membro para executar a consulta definida pelo conjunto de registros. Antes de chamar Abrir, você deve criar o objeto recordset.

Conexão do conjunto de registros para o Origem de dados depende de como você construir o conjunto de registros antes de chamar Abrir. Se você passar um objeto de CDatabase para o Construtor de conjunto de registros que não tenha sido conectado à fonte de dados, esta função de membro usa GetDefaultConnect para tentar abrir o objeto de banco de dados. Se você passar NULL para o Construtor de conjunto de registros, o construtor constrói um objeto de CDatabase para você e Abrir tenta conectar o objeto de banco de dados. Para obter detalhes sobre como fechar o conjunto de registros e a conexão sob essas circunstâncias diferentes, consulte Fechar.

&Notanbsp;  Acesso a uma fonte de dados por meio de um objeto CRecordset sempre é compartilhado. Ao contrário da classe de CDaoRecordset , você não pode usar um objeto de CRecordset abrir uma origem de dados com acesso exclusivo.

Quando você chama Abrir, uma consulta, geralmente uma instrução SQL Selecionar , seleciona registros com base em critérios mostrados na tabela a seguir.

Valor do parâmetro lpszSQL Registros selecionados são determinados por Exemplo
NULO A Cadeia de caracteres retornada por GetDefaultSQL.
Nome da tabela SQL Todas as colunas da tabela-lista DoFieldExchange ou DoBulkFieldExchange.
 "Cliente"
Nome da consulta predefinidos (procedimento armazenado) As colunas que da consulta é definida para retornar.
"{chamada OverDueAccts}"
Selecione lista de coluna FROM tabela-lista As colunas especificadas da tabela especificada (s).
"Selecione CustId, CustName do cliente"

! Aviso   Certifique-se de que você não inserir espaço em branco extra em sua cadeia de caracteres SQL. Por exemplo, se você inserir espaço em branco entre a chave e a palavra-chave CALL , MFC irá interpretar erroneamente a Cadeia de caracteres SQL como um nome de tabela e incorporá-lo em uma instrução SELECT , que resultará em uma exceção sendo lançada. Da mesma forma, se sua consulta predefinida usa um parâmetro de saída, não inserir espaço em branco entre a chave e o '?' símbolo. Finalmente, você não deve inserir espaço em branco antes da chave em uma instrução CALL ou antes a palavra-chave Selecionar em um statment de Selecionar.

O procedimento normal é passar NULL para Abrir; Neste caso, Abrir chama GetDefaultSQL. Se você estiver usando uma classe derivada CRecordset , GetDefualtSQL dá os nomes de tabela que você especificou na ClassWizard. Em vez disso você pode especificar outras informações no parâmetro lpszSQL.

Tudo o que você passar, Abrir constrói uma Cadeia de caracteres final do SQL para a consulta (Cadeia de caracteres pode ter cláusulas SQL onde e ORDER BY acrescentadas à cadeia lpszSQL que você passou) e, em seguida, executa a consulta. Você pode examinar a Cadeia de caracteres construída chamando GetSQL após a chamada aberta. Para obter detalhes adicionais sobre como o conjunto de registros constrói uma instrução SQL e seleciona registros, consulte o artigo Recordset: como conjuntos de registros selecionar registros (ODBC) no Guia do programador do Visual C++.

Os membros de dados de campo da sua classe de conjunto de registros são acoplados às colunas de dados selecionados. Se todos os registros são retornados, o primeiro registro se torna o registro atual.

Se você desejar definir opções para o conjunto de registros, como um filtro ou classificar, especifica esses após você criar o objeto recordset, mas antes de chamar Abrir. Se você deseja atualizar os registros no conjunto de registros após o conjunto de registros já está aberto, chamar RepetirConsulta.

Para obter mais informações, incluindo exemplos adicionais, consulte os artigos Conjunto de registros (ODBC), Recordset: como conjuntos de registros selecionar registros (ODBC), e Recordset: Criando e fechar conjuntos de registros selecionar registros (ODBC) no Guia do programador do Visual C++.

Exemplo

Os seguinte apresentação exemplos codificar diferentes formas da chamada de AAbrir.

/ / rs é um CRecordset ou
/ / CRecordset-derivado objeto

/ / Rs abertos utilizando a instrução SQL padrão,
/ / implementar indicadores e desligar
/ / verificação automático de campo sujo
RS.Abrir (CRecordset:: snapshot, &NULL,
 nbsp;       UseBookmarks |
         CRecordset:: noDirtyFieldCheck);

/ / Passar uma instrução SELECT completa
/ / e aberto como um dynaset
RS.Abrir (CRecordset:: dynaset,
         T ("Selecione L_Name de cliente"));

/ / Aceitar todos os padrões
RS.(Aberto)

Visão geral de CRecordsetMembros de classe | Gráfico de hierarquia

Co&nsulte tambémnbsp;CRecordset::CRecordset, CRecordset:: Close, CRecordset::GetDefaultSQL, CRecordset::GetSQL, CRecordset::m_strFilter, CRecordset::m_strSort, CRecordset:: Requery

Index