Claro que ya vas entendiendo. El problema lo detectamos en los fragmentos que sirven como comentario dentro de los Procedures. No en nombres de objetos. Inclusive las descripciones de los objetos también las removimos por la misma causa. Observe por favor un fragmento del Procedure donde le muestro el caracter que se multiplica
(sÃ-). El cual realmente debía ser una "i con tilde" para formar
(sí-). De hecho otros caracteres se reemplazan por otras secuencias de caracteres raros.
Código FIREBIRD:
Ver original/*Primero se busca el dato con todos la informacion que entra por parametros*/
if ((IEmp<>0) OR (aIPerfil<>'N/A') OR (IUsuario<>'N/A') OR (IWS<>'N/A') OR (ITDSop<>0))
then begin
SELECT SVALUE
FROM abaconfigusuario
WHERE (IEmp=:IEmp) AND (IPerfil=:aIPerfil) AND (NUsr=:IUsuario) AND (IWS=:IWS) AND
(NTabla=:NTabla) AND (NSTabla=:NSTabla) AND (ITDSop=:ITDSop) AND
(NField=:NField)
INTO :SValue;
/*Si fue dado el IWS y el valor no se ha encontrado, se busca con todos los datos igual pero
sin el IWS solamente. Con esto se da la posibilidad de tener una configuracion sin IWS pero
sÃ- con ITDSop. Antes, llegaba directo a los llamados recursivos y empezaba quitando el ITDSop
por lo que nunca encontraba una configuracion en ese caso.*/
if ((IWS<>'N/A') and (SValue IS NULL)) then begin
SELECT SVALUE
FROM abaconfigusuario
WHERE (IEmp=:IEmp) AND (IPerfil=:aIPerfil) AND (NUsr=:IUsuario) AND (IWS='N/A') AND
(NTabla=:NTabla) AND (NSTabla=:NSTabla) AND (ITDSop=:ITDSop) AND
(NField=:NField)
INTO :SValue;
if (NOT SValue IS NULL) then IWS='N/A';
end
end