예제 #1
0
        public DataTable GetDataTableWithSql(string tblname, string sql)
        {
            TableUnit unit  = null;
            DataTable table = null;

            AcquireReadTableLock(tblname);
            try
            {
                SaveTableNoLock(tblname);

                unit = mTableUnitManager.GetTableUnitWithSql(sql);

                table = unit.GetTable();

                string message = string.Format("GetDataTable {0}: {1} rows", sql, table.Rows.Count);
                mLogHelper.LogMessage(mClientKey, message, LogType.GetTableSql);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ReleaseReadTableLock(tblname);
            }

            return(table);
        }
예제 #2
0
        public DataTable GetDataTableTopRow(string tblname)
        {
            DataTable table = null;
            DataTable tbl   = null;

            AcquireReadTableLock(tblname);
            try
            {
                TableUnit unit = mTableUnitManager.GetTableUnit(tblname);

                table = unit.GetTable();
                tbl   = table.Clone();

                if (table.Rows.Count > 0)
                {
                    DataRow row = table.Rows[0];
                    tbl.ImportRow(row);
                }

                string message = string.Format("GetDataTableTop1 {0}", tblname);
                mLogHelper.LogMessage(mClientKey, message, LogType.GetTable);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ReleaseReadTableLock(tblname);
            }

            return(tbl);
        }
예제 #3
0
        public DataTable GetDataTable(string tblname, string filter, string order)
        {
            DataRow[] rows  = null;
            DataTable tbl   = null;
            DataTable table = null;

            AcquireReadTableLock(tblname);
            try
            {
                TableUnit unit = mTableUnitManager.GetTableUnit(tblname);
                table = unit.GetTable();
                rows  = table.Select(filter, order);
                tbl   = table.Clone();

                if (rows != null)
                {
                    foreach (DataRow row in rows)
                    {
                        tbl.ImportRow(row);
                    }
                }

                string message = string.Format("GetDataTable {0}: ", tblname);

                if (filter != null && filter != string.Empty)
                {
                    message += string.Format("where {0};", filter);
                }

                if (order != null && order != string.Empty)
                {
                    message += string.Format("order by {0};", order);
                }

                message += string.Format(" {0} rows", tbl.Rows.Count);
                mLogHelper.LogMessage(mClientKey, message, LogType.GetTable);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ReleaseReadTableLock(tblname);
            }

            return(tbl);
        }
예제 #4
0
        public int GetTableRowCount(string tblname, string dbname)
        {
            int nRet            = 0;
            TableUnitManager tm = TableHelper.GetTableUnitManangerByDbname(dbname);

            if (tm != null)
            {
                bool bRet = tm.ExistTable(tblname);
                if (bRet)
                {
                    TableUnit unit  = tm.GetTableUnit(tblname);
                    DataTable table = unit.GetTable();
                    nRet = table.Rows.Count;
                }
            }
            return(nRet);
        }