jorge1644, este es el mismo caso del otro post, debes pensar en una única consulta que te devuelva todos los datos y ejecutarla desde el código asp (no recomendado) o como bien dice iislas, ejecutarla desde un procedimiento almacenado, lo que no debes hacer es un loop en asp que ejecute N veces una consulta a la base, supone un ejemplo donde tienes la tabla clientes (id_cliente int, nombre varchar) y la tabla facturas (id_factura, fecha, id_cliente) y quieres obtener los clientes facturados el 1 de enero.
1. Una sola consulta en asp, funciona bien pero no recomendado.
Código:
Set rs1 = ConData.Execute("select
cliente.nombre
from
clientes
inner join facturas
on clientes.id_cliente=facturas.id_cliente
where facturas.fecha = '01012012'")
Do While Not rs1.EOF
Response.Write rs2("nombre")
rs1.MoveNext
Loop
rs1.Close
2. Dentro de la base, crear un procedimiento con la consulta, y ejecutar el procedimiento desde asp.
Código:
--codigo t-sql
create procedure p1
as
begin
select
cliente.nombre
from
clientes
inner join facturas
on clientes.id_cliente=facturas.id_cliente
where facturas.fecha = '01012012'
end
go
--código asp
Set rs1 = ConData.Execute("exec p1")
Do While Not rs1.EOF
Response.Write rs2("nombre")
rs1.MoveNext
Loop
rs1.Close
3. Lo que NO debes hacer, un loop en asp que ejecute N consultas.
Código:
Set rs1 = ConData.Execute("select * from facturas fecha = '01012012'")
Do While Not rs1.EOF
Set rs2 = Server.CreateObject("adodb.RecordSet")
rs2.Open "select nombre from clientes where id_cliente="&rs1("id_cliente"),ConData,3,3
Do While Not rs2.EOF
Response.Write rs2("nombre")
rs2.MoveNext
Loop
rs2.Close
rs1.MoveNext
Loop
rs1.Close
Saludos