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) { }