Recordset: Arquitetura (ODBC)
Este tópico se aplica a classes MFC ODBC.
Este tópico descreve os membros de dados que compõem a arquitetura de um objeto recordset:
Membros de dados de campo
Membros de dados de parâmetro
Usando m_nFields e m_nParams membros de dados
Observação |
---|
Este tópico se aplica aos objetos derivados de CRecordset em qual linha em massa buscando não foi implementada.Se em massa linha buscando for implementado, a arquitetura é semelhante.Para entender as diferenças, consulte Recordset: buscar registros em massa (ODBC). |
Classe de exemplo
Ao usar o Assistente de consumidor ODBC MFC de Add Class Assistente declare uma classe de conjunto de registros derivada de CRecordset, a classe resultante tem a estrutura geral mostra a seguinte classe simple:
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 os membros de dados do campo.Quando você cria a classe, você deve especificar um ou mais membros de dados de 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 adicionando parâmetros a uma classe.
Membros de dados de campo
Os membros mais importantes da sua classe de conjunto de registros são os membros de dados de campo.Para cada coluna que você selecione a fonte de dados, a classe contém um membro de dados do tipo de dados apropriado para aquela coluna.Por exemplo, o classe exemplo mostrado no início deste tópico possui dois membros de dados de campo, do tipo CString, chamada m_strCourseID e m_strCourseTitle.
Quando o conjunto de registros seleciona um conjunto de registros, a estrutura vincula automaticamente as colunas do registro atual (após a Abrir chamada, o primeiro registro é atual) para os membros de dados de campo do objeto.Isto é, a estrutura usa o membro de dados do campo apropriado como um buffer para armazenar o conteúdo de uma coluna de registro.
Como 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 adicionar 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 do 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 uma consulta de 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 seguinte instrução de SQL:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?
O "?" é um espaço reservado para um valor de parâmetro que você fornecer 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 SQL efetiva do conjunto de registros:
SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101
Definindo os membros de dados de parâmetro, informe-se a estrutura sobre parâmetros na cadeia de caracteres SQL.A estrutura vincula o parâmetro, que permite que o ODBC saiba onde obter valores para substituir o espaço reservado.No exemplo, o conjunto de registros resultante contém somente o registro da tabela 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ção |
---|
MFC não faz nada próprio com os parâmetros — em particular, não realiza uma substituição de texto.Em vez disso, o MFC informa a ODBC onde obter o parâmetro; 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 obter mais informações sobre parâmetros, consulte Recordset: parametrização um conjunto de registros (ODBC). |
Usando m_nFields e m_nParams
Quando um assistente grava um construtor para sua classe, também inicializa o m_nFields membro de dados que especifica o número de os membros de dados do campo na classe.Se você adicionar qualquer parâmetros de a classe, você também deve adicionar uma inicialização para a m_nParams 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 registro de campo Exchange: usando RFX.