protected override void VisitSubstringFunction(SubstringFunction function) { this.CommandText.Append("SUBSTR("); this.VisitField(function.Argument); this.CommandText.Append(", "); this.VisitField(function.StartIndex); this.CommandText.Append(" + 1"); if (function.Length != null) { this.CommandText.Append(", "); this.VisitField(function.Length); } this.CommandText.Append(")"); }
protected override void VisitStringCharIndexFunction(StringIndexFunction function) { this.CommandText.Append("("); if (function.StartIndex != null) { // e.g. INSTR(SUBSTR(text, startIndex), stringToFind) + startIndex var substring = new SubstringFunction() { Argument = function.Argument, StartIndex = function.StartIndex }; this.VisitFunction("INSTR", substring, function.StringToFind); this.CommandText.Append(" + "); this.VisitField(function.StartIndex); } else { this.VisitFunction("INSTR", function.Argument, function.StringToFind); } this.CommandText.Append(" - 1)"); }