Partilhar via


Conjunto de registros: arquitetura (ODBC)

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

Este tópico descreve os membros de dados que compõem a arquitetura de um objeto de conjunto de registros:

Observação

Este tópico aplica-se a objetos derivados de CRecordset nos quais a busca de linhas em massa não foi implementada. Se o carregamento de linhas em massa for implementado, a arquitetura será semelhante. Para entender as diferenças, consulte Recordset: Obtenção de Registos em Lote (ODBC).

Classe de amostra

Observação

O assistente MFC ODBC Consumer não está disponível no Visual Studio 2019 e em versões posteriores. Você ainda pode criar um consumidor manualmente.

Quando usas o MFC ODBC Consumer Wizard do assistente Adicionar Classe para declarar uma classe de conjunto de registos derivada de CRecordset, a classe resultante tem a estrutura geral mostrada na seguinte classe simples:

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

No início da aula, o professor escreve um conjunto de membros de dados de campo. Ao criar a classe, você deve especificar um ou mais membros de dados de campo. Se a classe for parametrizada, como a classe de exemplo é (com o membro m_strIDParamde dados ), você deve adicionar manualmente membros de dados de parâmetro. O assistente não suporta a adição de parâmetros a uma classe.

Membros de Campo de Dados

Os membros mais importantes da sua classe de conjunto de registros são os membros de dados de campo. Para cada coluna selecionada da fonte de dados, a classe contém um membro de dados do tipo de dados apropriado para essa coluna. Por exemplo, a classe de exemplo mostrada no início deste tópico tem dois membros de dados de campo, ambos do tipo CString, chamado m_strCourseID e m_strCourseTitle.

Quando o conjunto de registos selecciona um conjunto de registos, a estrutura vincula automaticamente as colunas do registo actual aos membros de dados de campo do objeto (após a chamada Open, o primeiro registo torna-se actual). Ou seja, a estrutura usa o membro de dados de campo apropriado como um buffer no qual armazenar o conteúdo de uma coluna de registro.

À medida que o usuário rola para um novo registro, a estrutura usa os membros de dados de campo para representar o registro atual. A estrutura atualiza os membros de dados de campo, substituindo os valores do registro anterior. Os membros de dados de campo também são usados para atualizar o registro atual e para adicionar novos registros. Como parte do processo de atualização de um registro, você especifica os valores de atualização atribuindo valores diretamente ao membro ou membros de dados de campo apropriados.

Membros de dados de parâmetro

Se a classe for parametrizada, ela terá um ou mais membros de dados de parâmetro. Uma classe parametrizada permite basear uma consulta de conjunto de registros em informações obtidas ou calculadas em tempo de execução.

Normalmente, o parâmetro ajuda a restringir a seleção, como no exemplo a seguir. Com base na classe de exemplo no início deste tópico, o objeto recordset pode executar a seguinte instrução 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ê constrói o conjunto de registros e define seu m_strIDParam membro de dados como MATH101, a instrução SQL efetiva para o conjunto de registros se torna:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101

Ao definir membros de dados de parâmetro, você informa a estrutura sobre parâmetros na cadeia de caracteres SQL. A estrutura vincula o parâmetro, permitindo que o ODBC saiba onde obter valores para substituir o marcador de posição. No exemplo, o conjunto de registros resultante contém apenas o registro da tabela Course com uma coluna CourseID cujo valor é MATH101. Todas as colunas especificadas deste registro são selecionadas. Você pode especificar quantos parâmetros (e espaços reservados) precisar.

Observação

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

Observação

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

Usando m_nFields e m_nParams

Quando um assistente escreve um construtor para a sua classe, ele também inicializa o membro de dados m_nFields, que especifica o número de membros de dados dos campos na classe. Se adicionar quaisquer parâmetros à sua classe, também deverá adicionar uma inicialização para o membro de dados m_nParams, que especifica o número de membros de dados de parâmetro. A estrutura de trabalho usa esses valores para trabalhar com os elementos de dados.

Para obter mais informações e exemplos, consulte Record Field Exchange: Using RFX.

Ver também

Conjunto de registros (ODBC)
Conjunto de registros: Declarando uma classe para uma tabela (ODBC)
Troca de campos de registro (RFX)