Ejemplo n.º 1
0
        public static Hashtable GetAllHash(MySqlConnection conn, MySqlTransaction trans, string table, bool cache, params WhereCol[] whereQuery)
        {
            if (cache && DSShared.DB.DBTableTypeCache.Instance.GetHash(table) != null)
            {
                return(DSShared.DB.DBTableTypeCache.Instance.GetHash(table));
            }

            ArrayList list = GetAll(conn, trans, table, cache, whereQuery);

            DSShared.DB.DBTableType thisType = DSShared.DB.DBTableTypeCache.Instance.GetType(table);

            if (thisType.AutoNumber != null)
            {
                PropertyInfo pi   = thisType.AutoNumber;
                Hashtable    hash = new Hashtable();
                foreach (MySQL_DBTable dt in list)
                {
                    hash[pi.GetGetMethod().Invoke(dt, null)] = dt;
                }

                if (cache)
                {
                    DSShared.DB.DBTableTypeCache.Instance.CacheHash(table, hash);
                }

                return(hash);
            }

            throw new Exception("Call GetAllHash on table: " + table + " invalid since it does not have an autonumber defined");
        }
Ejemplo n.º 2
0
        public static ArrayList GetAll(MySqlConnection conn, MySqlTransaction trans, string table, bool cache, params WhereCol[] whereQuery)
        {
            DSShared.DB.DBTableType thisTable = DSShared.DB.DBTableTypeCache.Instance.CacheTable(table);

            MySqlCommand comm = new MySqlCommand("SELECT * FROM " + thisTable.TableName, conn, trans);

            if (whereQuery != null && whereQuery.Length > 0)
            {
                bool flag = false;
                comm.CommandText += " WHERE ";
                int i = 0;
                foreach (WhereCol dbc in whereQuery)
                {
                    if (flag)
                    {
                        comm.CommandText += " AND ";
                    }
                    else
                    {
                        flag = true;
                    }

                    string paramID = "?" + paramPrefix + (i++);

                    comm.CommandText += dbc.Column + "=" + paramID;
                    comm.Parameters.Add(paramID, dbc.Data);
                }
            }
            MySqlDataReader res    = comm.ExecuteReader();
            ArrayList       list   = new ArrayList();
            Type            myType = DSShared.DB.DBTableTypeCache.Instance.GetTableType(thisTable.TableName);

            while (res.Read())
            {
                //if null object here, then the type does not have a default constructor defined
                object newObject = myType.GetConstructor(new Type[] {}).Invoke(null);
                foreach (PropertyInfo pi in thisTable.Columns)
                {
                    if (thisTable[pi] != null)
                    {
                        pi.SetValue(newObject, res[thisTable[pi].ColumnName], null);
                    }
                }

                //Console.WriteLine("Type: "+objType);
                list.Add(newObject);

                //((DBTable)newObject).FinishGet(conn2);
            }
            res.Close();

            foreach (MySQL_DBTable dbt in list)
            {
                dbt.FinishGet(conn, trans);
            }

            if (cache)
            {
                DSShared.DB.DBTableTypeCache.Instance.CacheList(table, list);
            }

            if (FinishGetAll != null)
            {
                FinishGetAll(table, list);
            }

            return(list);
        }
Ejemplo n.º 3
0
 public MySQL_DBTable(string tableName)
 {
     myType = DSShared.DB.DBTableTypeCache.Instance.CacheTable(tableName);
 }
Ejemplo n.º 4
0
		public MySQL_DBTable(string tableName)
		{
			myType = DSShared.DB.DBTableTypeCache.Instance.CacheTable(tableName);
		}