O conjunto de registros: Arquitetura (ODBC)

Este tópico se aplica às classes MFC ODBC.

Este tópico descreve os membros de dados que constituem a arquitetura de um objeto recordset:

  • Membros de dados de campo

  • Membros de dados de parâmetro

  • Usando membros de dados de m_nFields e m_nParams

ObservaçãoObservação

Este tópico se aplica aos objetos derivados de CRecordset no qual linha em massa buscando não foi implementada. Se a busca de linha em massa for implementada, a arquitetura é semelhante. Para entender as diferenças, consulte Recordset: Buscar registros em massa (ODBC).

Classe de exemplo

Quando você usa o Assistente de consumidor ODBC MFC de Add Class derivado do Assistente para declarar uma classe de conjunto de registros CRecordset, a classe resultante tem a estrutura geral, mostrada na classe de simple a seguir:

class CCourse : public CRecordset
{
public:
   CCourse(CDatabase* pDatabase = NULL);
   ...
   CString m_strCourseID;
   CString m_strCourseTitle;
   CString m_strIDParam;
};

No início da classe, o assistente grava um conjunto de membros de dados do campo. Quando você cria a classe, você deve especificar um ou mais membros de dados do campo. Se a classe é parametrizada, como o exemplo de classe é (com o membro de dados m_strIDParam), você deve adicionar manualmente membros de dados do parâmetro. O assistente não oferece suporte a adição de parâmetros para uma classe.

Membros de dados de campo

Os membros mais importantes da sua classe de conjunto de registros são os membros de dados do campo. Para cada coluna que você seleciona a partir da fonte de dados, a classe contém um membro de dados do tipo de dados apropriados para aquela coluna. Por exemplo, o classe exemplo mostrado no início deste tópico possui dois membros de dados de campo, ambos do tipo CString, chamado m_strCourseID e m_strCourseTitle.

Quando o conjunto de registros seleciona um conjunto de registros, a estrutura automaticamente vincula as colunas do registro atual (após o Abrir chamada, o primeiro registro for atual) para os membros de dados de campo do objeto. Ou seja, a estrutura usa o membro de dados de campo apropriado como um buffer para armazenar o conteúdo de uma coluna de registro.

Conforme o usuário rola para um novo registro, a estrutura usa os membros de dados de campo para representar o registro atual. O framework atualiza os membros de dados de campo, substituindo os valores do registro anterior. Os membros de dados do campo também são usados para atualizar o registro atual e para a adição de novos registros. Como parte do processo de atualização de um registro, você pode especificar os valores de atualização atribuindo valores diretamente para o membro de dados de campo apropriado ou membros.

Membros de dados de parâmetro

Se a classe é parametrizada, ele tem um ou mais membros de dados de parâmetro. Uma classe parametrizada permite basear a consulta uma conjunto de registros em informações obtidas ou calculado em tempo de execução.

Normalmente, o parâmetro ajuda a restringir a seleção, como no exemplo a seguir. Baseia o classe exemplo no início deste tópico, o objeto recordset pode executar a instrução a seguir SQL:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?

O "?" é um espaço reservado para um valor de parâmetro que você fornece em tempo de execução. Quando você construir o conjunto de registros e defina seu m_strIDParam torna-se do membro de dados para MATH101, a instrução de SQL efetiva do conjunto de registros:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101

Definindo os membros de dados de parâmetro, você pode dizer a estrutura sobre parâmetros na cadeia de caracteres SQL. O framework vincula o parâmetro, que permite que o ODBC saber onde obter os valores para substituir o espaço reservado. No exemplo, o conjunto de registros resultante contém somente o registro da tabela de curso com uma coluna de CourseID, cujo valor é MATH101. Todas as colunas especificadas desse registro são selecionadas. Você pode especificar quantos parâmetros (e espaços reservados) conforme necessário.

ObservaçãoObservação

MFC não faz nada o próprio com os parâmetros — em particular, ele não executa uma substituição de texto. Em vez disso, o MFC informa ODBC onde obter o parâmetro; ODBC recupera os dados e realiza a parametrização necessária.

ObservaçãoObservação

A ordem dos parâmetros é importante. Para obter informações sobre isso e mais informações sobre parâmetros, consulte Recordset: Parametrização de um conjunto de registros (ODBC).

Usando m_nFields e m_nParams

Quando um assistente grava dados em um construtor para a sua classe, também inicializa o m_nFields o membro de dados, que especifica o número de membros de dados do campo na classe. Se você adicionar qualquer parâmetros de à sua classe, você também deve adicionar uma inicialização para o m_nParams o membro de dados, que especifica o número de membros de dados de parâmetro. A estrutura usa esses valores para trabalhar com os membros de dados.

Para obter mais informações e exemplos, consulte troca de campo do registro: Usando o RFX.

Consulte também

Conceitos

O conjunto de registros (ODBC)

O conjunto de registros: Declarar uma classe para uma tabela (ODBC)

Troca de campo do registro (RFX)