Ejemplo n.º 1
0
        public ActionResult Index()
        {
            DersaUserSqlManager M = new DersaUserSqlManager();

            System.Data.DataTable T = M.ExecSql("select class_name from OBJECT_TYPE(nolock)");
            return(View(T));
        }
Ejemplo n.º 2
0
        public string ObjectInfo(string class_name, int id)
        {
            DersaUserSqlManager M = new DersaUserSqlManager();

            System.Data.DataTable T = M.ExecuteSPWithParams("OBJ$Info", new object[] { class_name, id });
            System.Data.DataRow   R = T.Rows.Count > 0 ? T.Rows[0] : null;
            var query =
                from System.Data.DataColumn C in T.Columns
                select new
            {
                Name           = C.ColumnName,
                Value          = R == null ? null : R[C],
                ReadOnly       = C.ColumnName == class_name.ToLower(),
                WriteUnchanged = C.ColumnName == class_name.ToLower(),
                Type           = 1,
                ControlType    = "text"
                                 //ChildFormAttrs = (int)R["Type"] == 1 ? null : new
                                 //{
                                 //    Height = 900,
                                 //    Width = 600,
                                 //    DisplayValue = (int)R["Type"] == 1 ? R["Value"] : "...",
                                 //    InfoLink = (int)R["Type"] == 1 ? "" : "Node/PropertyForm?id=" + id.ToString() + "&prop_name=" + R["Name"].ToString()
                                 //}
            };
            string result = JsonConvert.SerializeObject(query);

            return(result);
        }
Ejemplo n.º 3
0
        public string ObjectDrop(string class_name, int id)
        {
            DersaUserSqlManager M = new DersaUserSqlManager();

            try
            {
                M.ExecuteSPWithParams("OBJ$Drop", new object[] { class_name, id });
                return("");
            }
            catch (System.Exception exc)
            {
                return(exc.Message);
            }
        }
Ejemplo n.º 4
0
 public string ObjectUpdateOrInsert(string class_name, string json_params)
 {
     try
     {
         DersaUserSqlManager  M      = new DersaUserSqlManager();
         IParameterCollection Params = Util.DeserializeParams(json_params);
         bool   doInsert             = Params[class_name.ToLower()].Value.ToString() == "";
         string keyName = class_name.ToLower();
         if (!Params.Contains(keyName))
         {
             return("no key");
         }
         System.Data.DataTable T = M.ExecuteSPWithParams("OBJ$Info", new object[] { class_name, Params[class_name.ToLower()].Value });
         if (T.Rows.Count < 1)
         {
             if (!doInsert)
             {
                 return("no object");
             }
             System.Data.DataRow newR = T.NewRow();
             T.Rows.Add(newR);
         }
         ArrayList changedFields = new ArrayList();
         foreach (IParameter Param in Params)
         {
             if (!doInsert || Param.Name != keyName)
             {
                 T.Rows[0][Param.Name] = Param.Value;
                 changedFields.Add(Param.Name);
             }
         }
         string dbName = M.DatabaseName;
         if (!dbName.Contains("["))
         {
             dbName = "[" + dbName + "]";
         }
         //if(doInsert)
         //    M.InsertTable(dbName, class_name, class_name.ToLower(), T, changedFields);
         //else
         //    M.UpdateTable(dbName, class_name, class_name.ToLower(), T, changedFields);
         return("");
     }
     catch (System.Exception exc)
     {
         return(exc.Message);
     }
 }
Ejemplo n.º 5
0
        public ActionResult Display(string class_name)
        {
            DersaUserSqlManager M = new DersaUserSqlManager();

            System.Data.DataTable T = M.ExecuteSPWithParams("OBJ$List", new object[] { class_name });
            try
            {
                ActionResult CV = View(class_name, T);
                CV.ExecuteResult(this.ControllerContext);
                return(null);
            }
            catch
            {
                ViewBag.ClassName = class_name;
                ViewBag.KeyName   = class_name.ToLower();
                return(View("Table", T));
            }
        }
Ejemplo n.º 6
0
        public string ExecSql(string json_params)
        {
            IParameterCollection Params = Util.DeserializeParams(json_params);

            if (!Params.Contains("SQL"))
            {
                return(json_params);
            }
            else
            {
                DersaSqlManager      M          = new DersaSqlManager();
                string               sql        = Params["SQL"].Value.ToString().Replace("$gt$", ">").Replace("$lt$", "<");
                IParameterCollection UserParams = new ParameterCollection();
                string               userName   = HttpContext.Current.User.Identity.Name;
                UserParams.Add("@login", userName);
                UserParams.Add("@password", Util.GetPassword(userName));
                int userPermissions = M.ExecuteSPWithResult("DERSA_USER$GetPermissions", false, UserParams);
                int canExecSql      = userPermissions & 1;
                if (canExecSql == 0)
                {
                    return("You have no permissions to exec SQL in database.");
                }
                UserParams.Add("@user_setting_name", "Выполнять SQL локально");
                int execSqlLocal    = M.ExecuteSPWithResult("DERSA_USER$GetBoolUserSetting", false, UserParams);
                int canExecLocalSql = userPermissions & 2;
                if (execSqlLocal > 0)
                {
                    if (canExecLocalSql == 0)
                    {
                        return("You have no permissions to exec SQL locally.");
                    }
                    else
                    {
                        string queryId = GetQueryId(sql);
                        (UserParams["@user_setting_name"] as IParameter).Value = "Функция вызова локального клиента SQL";
                        System.Data.DataTable VT = M.ExecuteSPWithParams("DERSA_USER$GetTextUserSetting", UserParams);
                        if (VT == null || VT.Rows.Count < 1)
                        {
                            throw new Exception("Функция вызова локального клиента SQL не определена");
                        }
                        string functionBody = VT.Rows[0][0].ToString();
                        var    result       = new { action = functionBody, arg_name = "queryId", arg = queryId };
                        return(JsonConvert.SerializeObject(result));
                    }
                }

                try
                {
                    string result = "Unknown error";
                    if (Params.Contains("Server") && Params["Server"].Value != null)
                    {
                        string     connectionString = string.Format("Server={0};Database={1};user={2};password={3}", Params["Server"].Value, Params["Database"].Value, Params["Login"].Value, Params["Password"].Value);
                        SqlManager ExecM            = new SqlManager(connectionString);
                        result = ExecM.ExecMultiPartSql(sql);
                    }
                    else
                    {
                        DersaUserSqlManager UM = new DersaUserSqlManager();
                        result = UM.ExecMultiPartSql(sql);
                    }
                    if (result != "")
                    {
                        return(result);
                    }
                    return("Запрос успешно выполнен:\n\n" + sql);
                }
                catch (Exception exc)
                {
                    return(exc.Message);
                }
            }
        }