LPARAMETERS lcSelect * _DBPrefix = 'dbo.' If This.nDatamode = 0 If Vartype(lcSelect) = 'C' lcSelect = Strtran(lcSelect, '_DBPrefix.', "") lcSelect = Strtran(lcSelect, CRLF,' ') RETURN lcSelect Endif Else If Vartype(lcSelect) = 'C' lcSelect = Strtran(lcSelect, CRLF,'|') lcSelect = Strtran(lcSelect, '_DBPrefix', Server.oConfig.cDatabasePrefix) lcSelect = Strtran(lcSelect, '==', "=") lcSelect = Strtran(lcSelect, 'SUBSTR(', "SUBSTRING(") oRegExp.Pattern="isnull\(([^( ]*)\)" lcSelect = oRegExp.Replace(lcSelect, "$1 is null ") oRegExp.Pattern="not\s*empty\(([^( ]*)\)" lcSelect = oRegExp.Replace(lcSelect, "$1 <> '' ") oRegExp.Pattern="iif\(([^,]*),([^,]*),([^\)]*)\)" lcSelect = oRegExp.Replace(lcSelect, " case when $1 then $2 else $3 end ") lcSelect = Strtran(lcSelect, " currency", " money") * oRegExp.Pattern="as\s*currency" * lcSelect = oRegExp.Replace(lcSelect, "as money") lcSelect = Strtran(lcSelect,'|', CRLF) Endif Endif RETURN lcSelectThen I call this method ex. in query() like this:
Lparameters lcSelect, lcCursor, lnResultmode lcSelect = this.fixsql(lcSelect) Return DoDefault(lcSelect, lcCursor, lnResultmode)