Informe

Maria
29 de Octubre del 2004
Necesito imprimir una factura para ello creo una query con los campos que quiero visualizar y creo el informe pero la query es muy lenta , las tablas tienen todas índices.
Ejemplo de la query:
numerof:=strtoint(pnfactura.text);
Query18.Close;
Query18.Sql.Clear;
Query18.Sql.Add('SELECT /* +rule */');
Query18.Sql.Add('From Factura_Articulos, Facturas, Articulos, FormasPago, Facturas_Vtos, Iva, Provincias, Clientes, Descuentos');
Query18.Sql.Add('Where Factura_Articulos.Factura = :numerof ');
Query18.Sql.Add('AND Factura_Articulos.Factura = Facturas.NFactura ');
Query18.Sql.Add('AND Factura_Articulos.Articulo = Articulos.Codigo ');
Query18.Sql.Add('AND Facturas.FormaPago = FormasPago.Codigo');
Query18.Sql.Add('AND Facturas.Nfactura = Facturas_Vtos.NFactura');
Query18.Sql.Add('AND Facturas.Iva = Iva.Codigo');
Query18.Sql.Add('AND Facturas.Cliente = Clientes.codigo');
Query18.Sql.Add('AND Clientes.Provincia = Provincias.Codigo');
Query18.Sql.Add('AND Facturas.Dto = Descuentos.Tipo');
Query18.parambyname('numerof').asinteger:=numerof;
Query18.Open;
End;

Necesito ayuda para que no sea tan lento
gracias

Isa? Islas
29 de Octubre del 2004
Utilice JOIN, revise sus INDICES, desarrolle 2 capas, ejecute mejor un PROCEDIMIENTO ALMACENADO y no el codigo T-SQL desde el front.