hola eficsa:
Cita:
No puedo captar la idea, olvidaste mencionar sobre que posibilidad estas consultando.
|
Tengo en una tabla llamada inventario con los datos de los articulos el cual esta codigo_barra, codigo3, nombre, nombre2 y otros campos mas respecto al articulo
realice una consulta que me trajera una consulta de nombre2 con codigo3 de dicha tabla. ejemplo:
Código SQL
[-]
Select Distinct Nombre2, Codigo3 From Inventario Where Nombre2 is not null and Codigo3 is not null
order by Nombre2
Eso lo guarde en un ClientDataSet llamado cdsConsultarArancel.
ahora tengo un Query con parametros de fecha de busqueda que llama todas las ventas de ese periodo y lo guarda en otro ClientDataSet llamado cdsConsultaVentaFecha.
ahora tengo la informacion en memoria de esas consultas en los dos ClientDataSet y en fin si es posible hacer la búsqueda con los componentes en memoria en vez de utilizar este metodo que tengo a continuación ya que es muy lento.
Código Delphi
[-]
procedure TfrmSecundario.Button1Click(Sender: TObject);
Var
i: integer;
begin
timer1.Enabled := True;
CodArancel := trim(Edit1.Text);
dmLogica.cdsInventarioConsulta.Close;
with dmconecta.qConsultaArancel do
begin
Close;
ParamByName('Arancel').Asstring := CodArancel; open;
end;
NomArancel := dmconecta.qConsultaArancelNOMBRE2.AsString;
dmLogica.cdsInventarioConsulta.open;
i := dmLogica.cdsInventarioConsulta.RecordCount; Edit2.Text := IntToStr(i);
pstatus := strtoint(edit2.Text);
end;
dmLogica.cdsInventarioConsulta.First;
for i := 1 to dmLogica.cdsInventarioConsulta.RecordCount do
begin
dmLogica.cdsConsultaVentaFacturas.Close;
begin
CodBarra := dmLogica.cdsInventarioConsultaCOD_BARRAS.Asstring; NomArancel := dmLogica.cdsInventarioConsultaNOMBRE2.Asstring;
with dmconecta.qConsultaVentaFactura do
begin
Close;
ParamByName('Codigo').Asstring := CodBarra;
ParamByName('FechaInicio').AsDateTime := dtpInicioFecha.DateTime;
ParamByName('FechaFin').AsDateTime := dtpFinalFecha.DateTime;
open;
end;
dmLogica.cdsInventarioConsulta.Next;
dmLogica.cdsConsultaVentaFacturas.open;
ProgressBar1.Position := i + 1;
Sleep(10);
Application.ProcessMessages;
end;
dmLogica.cdsAgregaValorFacturas.AppendData
(dmLogica.cdsConsultaVentaFacturas.Data, True); end;
edtCodArancel.Text := CodArancel;
edtNomArancel.Text := NomArancel;
registros_vendidos;
trae_peso;
timer1.Enabled := false;
end;
end;
agradezco cualquier ayuda para mejorar los resultados sean rapidos... cabe mencionar que utilizo dos conexiones diferentes ya que los articulos estan en la db llamada inventario y otra ventas en firebird.
Saludos