public LeitorFeicaoGeo(string classeFeicao, FonteFeicao fonte, OperacaoEspacial operacao, Expressao filtro)
            : base(classeFeicao, fonte)
        {
            if (fonte == null)
            {
                throw new Exception("Fonte Nula");
            }
            this._fonte     = fonte;
            this._tabela    = fonte.ObterClasseFeicao(classeFeicao);
            this._atributos = this._tabela.Atributos;
            string str1 = "";

            for (int index = 0; index < this._tabela.Atributos.Count; ++index)
            {
                if (this._tabela.Atributos[index].Tipo == DbType.DateTime)
                {
                    str1 = str1 + "to_char(" + this._tabela.Atributos[index].Nome + ",'dd/mm/yyyy HH24:mi:ss') " + this._tabela.Atributos[index].Nome + ", ";
                }
                else
                {
                    str1 = str1 + this._tabela.Atributos[index].Nome + ", ";
                }
            }
            if (operacao != null)
            {
                str1 = str1 + operacao.GerarComando("param") + " ";
            }
            string str2 = str1 + this._tabela.CampoGeometrico;
            string str3 = "";

            if (filtro != null)
            {
                str3 = " where " + filtro.GerarComando("fparam");
            }
            OracleCommand cmd1 = new OracleCommand("select count(*) from " + this._tabela.Nome + str3, (this.Fonte as FonteFeicaoOracleSpatial).Conexao);

            filtro?.CarregarParametros(cmd1, "fparam");
            int int32 = Convert.ToInt32(cmd1.ExecuteScalar());

            this._dr = (XmlTextReader)null;
            if (int32 <= 0)
            {
                return;
            }
            OracleCommand cmd2 = new OracleCommand("select " + str2 + " from " + this._tabela.Nome + str3, (this.Fonte as FonteFeicaoOracleSpatial).Conexao);

            cmd2.XmlCommandType = OracleXmlCommandType.Query;
            cmd2.FetchSize      = 5242880L;
            cmd2.CommandTimeout = 3600;
            operacao?.CarregarParametros(cmd2, "param");
            filtro?.CarregarParametros(cmd2, "fparam");
            if (cmd2.Parameters.Count > 0)
            {
                cmd2.BindByName = true;
                cmd2.AddRowid   = true;
            }
            else
            {
                cmd2.BindByName = false;
            }
            this.ComandoSQL             = cmd2.CommandText;
            this._dr                    = (XmlTextReader)cmd2.ExecuteXmlReader();
            this._dr.WhitespaceHandling = WhitespaceHandling.None;
            do
            {
                ;
            }while (this._dr.Read() && this._dr.Name != "ROWSET");
        }
 public LeitorFeicaoGeo(string classeFeicao, FonteFeicao fonte)
     : this(classeFeicao, fonte, (OperacaoEspacial)null, (Expressao)null)
 {
 }