예제 #1
0
        private void AddParameter(LqlObject lqlObject, string value, bool fullTextSearchEnabled)
        {
            IncrementParamCounter();
            var paramName = GetParameterName();
            var parameter = new SqlParameter(paramName, SqlDbType.VarChar, GetVarcharLength(lqlObject));

            if (fullTextSearchEnabled)
                parameter.Value = "\"" + value + "\"";
            else
                parameter.Value = value;

            _sb.Append(paramName);

            Parameters.Add(parameter);
        }
예제 #2
0
 private bool IsFullTextSearchCompatible(LqlObject lqlObject, LqlOperator lqlOperator)
 {
     return (lqlObject != LqlObject.Application && lqlObject != LqlObject.Fingerprint)
         && (lqlOperator == LqlOperator.Like || lqlOperator == LqlOperator.NotLike);
 }
예제 #3
0
 private string GetColumnName(LqlObject lqlObject)
 {
     switch (lqlObject)
     {
         case LqlObject.Application:
             return "ED.ApplicationId";
         case LqlObject.Fingerprint:
             return "ED.FingerprintText";
         case LqlObject.StackFrame:
             return "EB.StackFrame";
         case LqlObject.ExceptionType:
             return "EB.ExceptionType";
         case LqlObject.Message:
             return "T.MessageDetails";
         default:
             throw new SqlGenerationException("LQL object not supported for SQL generation: " + lqlObject.ToString());
     }
 }
예제 #4
0
        private void AddInParameters(LqlObject lqlObject, List<string> values)
        {
            int counter = 0;
            foreach(var value in values)
            {
                if (counter > 0)
                    _sb.Append(",");

                IncrementParamCounter();
                var paramName = GetParameterName();
                var parameter = new SqlParameter(paramName, SqlDbType.VarChar, GetVarcharLength(lqlObject));
                parameter.Value = value;
                Parameters.Add(parameter);
                _sb.Append(paramName);

                counter++;
            }
        }
예제 #5
0
 private int GetVarcharLength(LqlObject lqlObject)
 {
     switch (lqlObject)
     {
         case LqlObject.Application:
             return 255;
         case LqlObject.StackFrame:
             return 1000;
         case LqlObject.ExceptionType:
             return 200;
         case LqlObject.Message:
             return 1000;
         case LqlObject.Fingerprint:
             return 32;
         default:
             return 50;
     }
 }