Beispiel #1
0
        /// <summary>
        /// 获取前N条记录(未实现Oracle功能)
        /// add by tintown at 2004-09-06
        /// </summary>
        /// <param name="cmd"></param>
        /// <param name="top"></param>
        /// <returns></returns>
        public override DataTable AsDataTable(IDbCommand cmd, int top)
        {
            cmd.Connection  = this.connection;
            cmd.Transaction = this.transaction;
            string cmdText = cmd.CommandText;

            //使用ORCALE添加rownum的方法重装SQL语句
            cmd.CommandText = PersistenceBroker.AddOracleTopWhere(cmdText, top);;
            OleDbDataAdapter adapter = new OleDbDataAdapter((OleDbCommand)cmd);
            DataTable        dt      = new DataTable();

            adapter.Fill(dt);
            return(dt);
        }
Beispiel #2
0
        /// <summary>
        ///		执行查询,并返回查询结果集
        /// </summary>
        /// <returns>查询结果</returns>
        public DataTable Execute()
        {
            PersistenceBroker  broker = PersistenceBroker.Instance();
            RelationalDatabase rdb    = broker.GetDatabaseCopy(this.DatabaseName);
            IDbCommand         cmd    = rdb.GetCommand();

            cmd.CommandText = this.BuildForQuery(cmd);
            string cmdText = cmd.CommandText;

            if (rdb.Vendor == DatabaseVendor.Oracle)
            {
                int topInd = cmdText.IndexOf("Top");
                if (topInd != -1)
                {
                    cmdText = cmdText.Substring(0, topInd) + cmdText.Substring(topInd + 6);

                    //使用ORCALE添加rownum的方法重装SQL语句
                    cmdText = PersistenceBroker.AddOracleTopWhere(cmdText, this.Top);
                }
            }
            cmd.CommandText = cmdText;
            return(broker.ExecuteQuery(cmd, this.DatabaseName));
        }