Exemple #1
0
        internal String DebugQuery(String source, String command, DbParameterCollection parameters, Object transaction, Boolean force)
        {
            if (!i_debug && !force)
            {
                return("");
            }

            String debug = "/****** Source:  " + source + "    Script Date: " + DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss.ffffff") + " ******/" + Environment.NewLine;

            if (parameters != null)
            {
                foreach (DbParameter par in parameters)
                {
                    debug += "DECLARE " + par.ParameterName + " " + par.Type.ToString();
                    if (par.Size > 0)
                    {
                        debug += "(" + par.Size + ")";
                    }
                    debug += Environment.NewLine;
                    switch (par.Type.ToString().ToLower())
                    {
                    case "int64":
                    case "long":
                    case "int32":
                    case "int":
                    case "int16":
                        debug += "SET " + par.ParameterName + " = " + par.Value + Environment.NewLine;
                        break;

                    case "boolean":
                    case "bool":
                        debug += "SET " + par.ParameterName + " = " + ((Boolean)par.Value ? "1" : "0") + Environment.NewLine;
                        break;

                    default:
                        debug += "SET " + par.ParameterName + " = '" + par.Value + "'" + Environment.NewLine;
                        break;
                    }
                }
                debug += Environment.NewLine;
            }


            debug += command + Environment.NewLine;

            debug += "GO" + Environment.NewLine + Environment.NewLine;

            if (!i_debug)
            {
                return(debug);
            }

            DbParameterCollection col = new DbParameterCollection();

            col.Add("@text", typeof(String)).Value = debug;

            try
            {
                ExecuteNonQuery("insert into debug (text) values (@text)", CommandType.Text, col, transaction);
            }
            catch { }

            return(debug);
        }