Beispiel #1
0
        /// <summary>
        /// Construye un LOCK para el esquema dado
        /// </summary>
        /// <param name="schema">Esquema de la base de datos</param>
        /// <returns>Consulta</returns>
        public string LOCK(Type type, string schema)
        {
            string tabla = string.Empty;

            if (schema == null)
            {
                tabla = GetSQLTable(type);
            }
            else
            {
                schema = "\"" + ((schema == "COMMON") ? schema : Convert.ToInt32(schema).ToString("0000")) + "\"";
                tabla  = schema + ".\"" + Cfg.GetClassMapping(type).Table.Name + "\"";
            }

            //return String.Empty;

            switch (Cfg.GetProperty("dialect"))
            {
            // En PostgreSQL el LOCK se hace en el SELECT para hacerlo a nivel de registro
            // y no de tabla
            case "NHibernate.Dialect.PostgreSQL82Dialect":
                return(string.Empty);

            default:
                return("LOCK TABLE " + tabla + " IN ROW EXCLUSIVE MODE NOWAIT;");
            }
        }
Beispiel #2
0
 /// <summary>
 /// Devuelve el nombre de la tabla asociada a un tipo
 /// </summary>
 /// <param name="type">Tipo del objeto</param>
 /// <returns>Lo devuelve de la forma "schema"."tabla"</returns>
 public string GetSQLTable(Type type)
 {
     try
     {
         return(GetSQLTable(type, (AppContext.ActiveSchema != null)
                                                                                 ? AppContext.ActiveSchema.Code
                                                                                 : Cfg.GetProperty("default_schema")));
     }
     catch
     {
         return(GetSQLTable(type, Cfg.GetProperty("default_schema")));
     }
 }
Beispiel #3
0
        public string GetConnectionParam(string param)
        {
            try
            {
                string   con       = Cfg.GetProperty("connection.connection_string");
                String[] conParams = con.Split(new Char[] { ';' });

                for (int i = 0; i < conParams.Length; i++)
                {
                    if (conParams[i].Contains(param))
                    {
                        return(conParams[i].Substring(conParams[i].IndexOf("=") + 1));
                    }
                }
            }
            catch { }

            throw new Exception(String.Format(Resources.Messages.NOT_FOUND_CONNECTION_PARAM, param));
        }