Hola colegas
Haber si me pueden ayudar a decifrar que es lo que ocurre aquí.
Tengo el SP SMDRP_AMP (en InterBase 6.5 Dialec 3)
CREATE PROCEDURE SMDRP_AMP
RETURNS (
ID INTEGER,
FECHA DATE,
HORA TIME,
TELF VARCHAR(38) CHARACTER SET NONE,
LUGAR VARCHAR(30) CHARACTER SET NONE)
AS
begin
for select id,
fecha,
hora,
telf,
from smdrp
into :id,
:fecha,
:hora,
:telf,
begin
Lugar = '';
SELECT DESCRIP FROM DIRTELF
WHERE (TELF = :TELF)
INTO :LUGAR;
SUSPEND;
end
end
El objetivo del SP es hacer una especie de JOIN entre SMDRP y DIRTELF por el campo TELF (observa que cuando no encuentra TELF en DIRTELF devuelve Lugar = '')
Establezco la conexión y el juego de registro así:
<%
Dim Listado
Dim Listado_numRows
Set Listado = Server.CreateObject("ADODB.Recordset")
Listado.ActiveConnection = "dsn=Phone;uid=SYSDBA;pwd=masterkey;"
Listado.Source = "SELECT * FROM SMDRP_AMP"
Listado.CursorType = 0
Listado.CursorLocation = 2
Listado.LockType = 1
Listado.Open()
Listado_numRows = 0
%>
Y al final despliego lo registros en una tabla.
Ahora bien si la cantidad de registros a mostrar no es muy grande no hay problemas, pero cuando crece la cantidad de registros (+200) se demora tanto que la pagina devuelve un error. Esto no sucede si en lugar de usar el SP SMDRP_AMP uso la tabla SMDRP.