Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
Este tópico se aplica às classes ODBC do MFC.
Este tópico explica como obter resultados agregados usando as seguintes palavras-chave SQL :
SOMA Calcula o total dos valores em uma coluna com um tipo de dados numéricos.
MIN Extrai o menor valor em uma coluna com um tipo de dados numéricos.
MÁX Extrai o maior valor em uma coluna com um tipo de dados numéricos.
AVG Calcula um valor médio de todos os valores em uma coluna com um tipo de dados numéricos.
CONTAGEM Conta o número de registros em uma coluna de qualquer tipo de dados.
Você usa essas funções SQL para obter informações estatísticas sobre os registros em uma fonte de dados em vez de extrair registros da fonte de dados. O conjunto de registros criado geralmente consiste em um único registro (se todas as colunas forem agregadas) que contém um valor. (Pode haver mais de um registro se você usar uma cláusula GROUP BY .) Este valor é o resultado do cálculo ou extração realizada pela função SQL.
Sugestão
Para adicionar uma cláusula SQL GROUP BY ( e possivelmente uma cláusula HAVE ) à sua instrução SQL, acrescente-a ao final do m_strFilter. Por exemplo:
m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";
Você pode limitar o número de registros usados para obter resultados agregados filtrando e classificando as colunas.
Atenção
Alguns operadores de agregação retornam um tipo de dados diferente das colunas sobre as quais estão agregando.
SUM e AVG podem retornar o próximo tipo de dados maior (por exemplo, chamando com
intretornos LONG oudouble).COUNT geralmente retorna LONG independentemente do tipo de coluna de destino.
MAX e MIN retornam o mesmo tipo de dados que as colunas que calculam.
Por exemplo, o assistente Adicionar classe cria
longm_lSalespara acomodar uma coluna de vendas, mas precisa que substitua isso por um membro de dadosdouble m_dblSumSalespara acomodar o resultado agregado. Veja o seguinte exemplo.
Para obter um resultado agregado para um conjunto de registros
Crie um conjunto de registros conforme descrito em Adicionando um consumidor ODBC MFC contendo as colunas das quais você deseja obter resultados agregados.
Modifique a função DoFieldExchange para o conjunto de registros. Substitua a cadeia de caracteres que representa o nome da coluna (o segundo argumento das chamadas de função RFX ) por uma cadeia de caracteres que representa a função de agregação na coluna. Por exemplo, substitua:
RFX_Long(pFX, "Sales", m_lSales);Por:
RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)Abra o conjunto de registros. O resultado da operação de agregação é deixado em
m_dblSumSales.
Observação
O assistente de facto atribui nomes de membros de dados sem prefixos húngaros. Por exemplo, o assistente produziria m_Sales para uma coluna de Vendas, em vez de usar o nome m_lSales anteriormente para ilustração.
Se você estiver usando uma classe CRecordView para exibir os dados, será necessário alterar a chamada de função DDX para exibir o novo valor de membro de dados; neste caso, alterá-lo de:
DDX_FieldText(pDX, IDC_SUMSALES, m_pSet->m_lSales, m_pSet);
Para:
DDX_FieldText(pDX, IDC_SUMSALES, m_pSet->m_dblSumSales, m_pSet);
Ver também
Conjunto de registros (ODBC)
Conjunto de registros: Como os conjuntos de registros selecionam registros (ODBC)