13789 - Cursor com Substring
Problema: Tem como usar o comando substring dentro de um cursor? Existe alguma limitação?
Rotina / Tela: Regras
Solução: Solução 13789: Tem como usar, segue exemplo abaixo. Lembrando que a substring é limitada em 30 caracteres dentro do cursor.
definir alfa ANumOco;
definir alfa ASeqAnt;
definir alfa Cur_E615OBS;
SQL_Criar(Cur_E615OBS);
SQL_UsarSQLSenior2(Cur_E615OBS,1);
SQL_DefinirComando(Cur_E615OBS,SELECT SUBSTR (E615OBS.ObsPrj,0,30) AS ObsPrj, E615OBS.ObsUsu
FROM E615OBS
WHERE E615OBS.ObsPrj LIKE 'Aprovada a liberação do registro de ocorrência%' /
AND E615OBS.NumPrj = 11113);
SQL_AbrirCursor(Cur_E615OBS);
Se (SQL_EOF(Cur_E615OBS) = 0)
Inicio
SQL_RetornarAlfa(Cur_E615OBS,ObsPrj,ANumOco);
DeixaNumeros(ANumOco);
Se (ASeqAnt = ANumOco)
SQL_RetornarInteiro(Cur_E615OBS,ObsUsu,NNumAnt);
Fim;
SQL_FecharCursor(Cur_E615OBS);
Rotina / Tela: Regras
Solução: Solução 13789: Tem como usar, segue exemplo abaixo. Lembrando que a substring é limitada em 30 caracteres dentro do cursor.
definir alfa ANumOco;
definir alfa ASeqAnt;
definir alfa Cur_E615OBS;
SQL_Criar(Cur_E615OBS);
SQL_UsarSQLSenior2(Cur_E615OBS,1);
SQL_DefinirComando(Cur_E615OBS,SELECT SUBSTR (E615OBS.ObsPrj,0,30) AS ObsPrj, E615OBS.ObsUsu
FROM E615OBS
WHERE E615OBS.ObsPrj LIKE 'Aprovada a liberação do registro de ocorrência%' /
AND E615OBS.NumPrj = 11113);
SQL_AbrirCursor(Cur_E615OBS);
Se (SQL_EOF(Cur_E615OBS) = 0)
Inicio
SQL_RetornarAlfa(Cur_E615OBS,ObsPrj,ANumOco);
DeixaNumeros(ANumOco);
Se (ASeqAnt = ANumOco)
SQL_RetornarInteiro(Cur_E615OBS,ObsUsu,NNumAnt);
Fim;
SQL_FecharCursor(Cur_E615OBS);