private string PrepareValue(SqlTimingParameter p)
        {
            if (p.Value == null)
            {
                return("null");
            }

            if (dontQuote.Contains(p.DbType))
            {
                if (p.DbType == "Boolean")
                {
                    return(p.Value == "True" ? "1" : "0");
                }

                return(p.Value);
            }

            string prefix = "";

            if (p.DbType == "String" || p.DbType == "StringFixedLength")
            {
                prefix = "N";
            }

            return(prefix + "'" + p.Value.Replace("'", "''") + "'");
        }
Exemple #2
0
        /// <summary>
        /// Returns a string representation of the parameter's value, including the type
        /// </summary>
        /// <param name="param">The timing parameter to get the value for.</param>
        public string GetParameterValue(SqlTimingParameter param)
        {
            // TODO: ugh, figure out how to allow different db providers to specify how values are represented (e.g. bit in oracle)
            var result = param.Value;
            var type   = param.DbType ?? string.Empty;

            if (result != null)
            {
                switch (type.ToLower())
                {
                case "string":
                case "datetime":
                    result = string.Format("'{0}'", result);
                    break;

                case "boolean":
                    result = result switch
                    {
                        "True" => "1",
                        "False" => "0",
                        _ => null,
                    };
                    break;
                }
            }

            result ??= "null";
            if (includeTypeInfo)
            {
                result += " /* " + param.Name + " DbType." + param.DbType + " */";
            }
            return(result);
        }
        /// <summary>
        /// Prepare the parameter value for use in SqlFormatter output
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        protected string PrepareValue(SqlTimingParameter parameter)
        {
            if (parameter.Value == null)
            {
                return("null");
            }

            if (DontQuote.Contains(parameter.DbType))
            {
                if (parameter.DbType == "Boolean")
                {
                    return(parameter.Value == "True" ? "1" : "0");
                }

                return(parameter.Value);
            }

            var prefix = string.Empty;

            if (parameter.DbType == "String" || parameter.DbType == "StringFixedLength")
            {
                prefix = "N";
            }

            return(prefix + "'" + parameter.Value.Replace("'", "''") + "'");
        }
        public void GetHashCodeWithNullParameterValue()
        {
            SqlTimingParameter parameter = new SqlTimingParameter();
            parameter.Name = "TestParameter";
            parameter.Value = null;
            parameter.ParentSqlTimingId = Guid.NewGuid();

            Assert.DoesNotThrow(() => parameter.GetHashCode());
        }
Exemple #5
0
        public void GetHashCodeWithNullParameterValue()
        {
            SqlTimingParameter parameter = new SqlTimingParameter();

            parameter.Name              = "TestParameter";
            parameter.Value             = null;
            parameter.ParentSqlTimingId = Guid.NewGuid();

            Assert.DoesNotThrow(() => parameter.GetHashCode());
        }
        /// <summary>
        /// prepare the value.
        /// </summary>
        /// <param name="p">The p.</param>
        /// <returns>the prepared string.</returns>
        private string PrepareValue(SqlTimingParameter p)
        {
            if (p.Value == null)
            {
                return("null");
            }

            if (DontQuote.Contains(p.DbType))
            {
                return(p.Value);
            }

            return("'" + p.Value.Replace("'", "''") + "'");
        }
        private void GenerateStoreProcedureCall(string commandText, List <SqlTimingParameter> parameters, StringBuilder buffer)
        {
            buffer.Append("EXEC ");

            SqlTimingParameter returnValueParameter = GetReturnValueParameter(parameters);

            if (returnValueParameter != null)
            {
                buffer.Append(EnsureParameterPrefix(returnValueParameter.Name)).Append(" = ");
            }

            buffer.Append(commandText);

            GenerateStoredProcedureParameters(buffer, parameters);
            buffer.Append(";");

            GenerateSelectStatement(buffer, parameters);
        }
Exemple #8
0
        /// <summary>
        /// Returns a string representation of the parameter's value, including the type
        /// </summary>
        /// <param name="p">The parameter to get a value for</param>
        /// <returns></returns>
        public string GetParameterValue(SqlTimingParameter p)
        {
            // TODO: ugh, figure out how to allow different db providers to specify how values are represented (e.g. bit in oracle)
            var result = p.Value;
            var type   = p.DbType ?? "";

            switch (type.ToLower())
            {
            case "string":
            case "datetime":
                result = string.Format("'{0}'", result);
                break;

            case "boolean":
                switch (result)
                {
                case "True":
                    result = "1";
                    break;

                case "False":
                    result = "0";
                    break;

                default:
                    result = null;
                    break;
                }
                break;
            }

            if (result == null)
            {
                result = "null";
            }
            if (_includeTypeInfo)
            {
                result += " /* " + p.Name + " DbType." + p.DbType + " */";
            }

            return(result);
        }
        /// <summary>
        /// Returns a string representation of the parameter's value, including the type
        /// </summary>
        /// <param name="p">The parameter to get a value for</param>
        /// <returns></returns>
        public string GetParameterValue(SqlTimingParameter p)
        {
            // TODO: ugh, figure out how to allow different db providers to specify how values are represented (e.g. bit in oracle)
            var result = p.Value;
            var type = p.DbType ?? "";

            switch (type.ToLower())
            {
                case "string":
                case "datetime":
                    result = string.Format("'{0}'", result);
                    break;
                case "boolean":
                    switch (result)
                    {
                        case "True":
                            result = "1";
                            break;
                        case "False":
                            result = "0";
                            break;
                        default:
                            result = null;
                            break;
                    }
                    break;
            }

            if (result == null)
            {
                result = "null";
            }
            if(_includeTypeInfo)
            {
                result += " /* " + p.Name + " DbType." + p.DbType + " */";
            }

            return result;
        }
        private string PrepareValue(SqlTimingParameter p)
        {
            if (p.Value == null)
            {
                return "null";
            }

            if (dontQuote.Contains(p.DbType))
            {
                return p.Value;
            }

            return "'" + p.Value.Replace("'", "''") + "'";
        }
        /// <summary>
        /// prepare the value.
        /// </summary>
        /// <param name="parameter">The parameter.</param>
        /// <returns>the prepared parameter value.</returns>
        private string PrepareValue(SqlTimingParameter parameter)
        {
            if (parameter.Value == null)
            {
                return "null";
            }

            if (DontQuote.Contains(parameter.DbType))
            {
                if (parameter.DbType == "Boolean")
                {
                    return parameter.Value == "True" ? "1" : "0";
                }

                return parameter.Value;
            }

            var prefix = string.Empty;
            if (parameter.DbType == "String" || parameter.DbType == "StringFixedLength")
            {
                prefix = "N";
            }

            return prefix + "'" + parameter.Value.Replace("'", "''") + "'";
        }
        private string GetJsonVal(SqlTimingParameter p)
        {
            if (p.Value == null || p.Value.Length == 0)
            {
                return null;
            }

            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<List<string>>));

            using (Stream s = GenerateStreamFromString(p.Value))
            {
                var data = (List<List<String>>)ser.ReadObject(s);

                var rows = new List<string>();

                foreach (List<string> row in data)
                {
                    for (int i = 0; i < row.Count; i++)
                    {
                        row[i] = "'" + row[i].Replace("'", "''") + "'";
                    }
                    rows.Add("(" + string.Join(",", row) + ")");
                }

                return string.Join(",\n", rows);

            }
        }
        private string PrepareValue(SqlTimingParameter p)
        {
            if (p.Value == null)
            {
                return "null";
            }

            if (dontQuote.Contains(p.DbType))
            {
                return p.Value;
            }

            string prefix = "";
            if (p.DbType == "String" || p.DbType == "StringFixedLength")
            {
                prefix = "N";
            }

            return prefix + "'" + p.Value.Replace("'","''") + "'";
        }