Hace ya tiempo me explicasteis como definir (RDB$SET_CONTEXT) y usar (RDB$GET_CONTEXT) variables en un query pero me ha llamdo la atención que esas variables definidas no puede usarse en las condiciones del query.
Por ejemplo: tengo definidas en un query estas dos variables.
Código SQL
[-]RDB$SET_CONTEXT('USER_TRANSACTION', 'VOTOS', ((SELECT SUM(Votos) FROM Resultados WHERE CodPrv = A.CodPrv
AND Proceso = A.CodPro AND (Partido > 1 OR Partido = (SELECT Codigo FROM Partidos
WHERE CodPrv = A.CodPrv AND Sigla = 'BLANCOS')) AND Mesa IN (SELECT Codigo FROM Mesas
WHERE CodPrv = A.CodPrv AND Municipio = A.Codigo))))
RDB$SET_CONTEXT('USER_TRANSACTION', 'VOTOSPAR', ((SELECT SUM(Votos) FROM Resultados WHERE CodPrv = A.CodPrv
AND Proceso = A.CodPro AND Partido = C.Partido AND Mesa IN (SELECT Codigo FROM Mesas
WHERE CodPrv = A.CodPrv AND Municipio = A.Codigo))))
y sin trato de hacer esto en un query:
Código SQL
[-]AND RDB$GET_CONTEXT('USER_TRANSACTION', 'VOTOSPAR') >= 5 * RDB$GET_CONTEXT('USER_TRANSACTION', 'VOTOS') / 100
SQL Manager me da este error:
Cita:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Dynamic SQL Error.
Expression evaluation not supported.
Strings cannot be multiplied in dialect 3.
|
Entiendo que ese tipo de estructura es ilegal en Firebird o ¿lo estoy haciendo mal?