15237 - Utilização de Cursores com função de agrupamento (SUM, COUNT, etc)
Problema: Ao utilizar a função de agrupamento SUM em um Cursor ocorre o erro abaixo: Erro de sintaxe, Comando SQL definido incorretamente: O campo precisa ser informado com a tabela no método TSSQLGen.Select. O que é método TSSQLGen?
Quando ocorre / onde se aplica: Ferramentas Customizadas, Editor de Regras em Recursos > Implementações
Solução: O Método TSSQlGen seria a forma que a linguagem executa no banco o comando que está passando na regra. A criação do Cursor no formato padrão não irá funcionar com a utilização das funções de agrupamento, neste caso, será necessário criar o Cursor no formato de utilização conforme o exemplo abaixo (SQL_Criar):
Definir alfa xCursor;
Definir Alfa aSQL;
SQL_Criar(xCursor);
aSQL = select sum(usu_campo) total from usu_teste;
SQL_DefinirComando(xCursor,aSQL);
@-- Abrir o cursor para Ultilização --@
SQL_AbrirCursor(xCursor);
Se (SQL_EOF(xCursor) = 0)
{
SQL_RetornarInteiro(xCursor,total,xRetorno);
}
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);
Quando ocorre / onde se aplica: Ferramentas Customizadas, Editor de Regras em Recursos > Implementações
Solução: O Método TSSQlGen seria a forma que a linguagem executa no banco o comando que está passando na regra. A criação do Cursor no formato padrão não irá funcionar com a utilização das funções de agrupamento, neste caso, será necessário criar o Cursor no formato de utilização conforme o exemplo abaixo (SQL_Criar):
Definir alfa xCursor;
Definir Alfa aSQL;
SQL_Criar(xCursor);
aSQL = select sum(usu_campo) total from usu_teste;
SQL_DefinirComando(xCursor,aSQL);
@-- Abrir o cursor para Ultilização --@
SQL_AbrirCursor(xCursor);
Se (SQL_EOF(xCursor) = 0)
{
SQL_RetornarInteiro(xCursor,total,xRetorno);
}
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);