• Sábado 21 de Diciembre de 2024, 10:06

Autor Tema:  Mostrar Un Sp Como Una Tabla  (Leído 1301 veces)

Isnel

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Mostrar Un Sp Como Una Tabla
« en: Miércoles 15 de Noviembre de 2006, 19:33 »
0
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)

Código: Text
  1. CREATE PROCEDURE SMDRP_AMP
  2. RETURNS (
  3.     ID INTEGER,
  4.     FECHA DATE,
  5.     HORA TIME,
  6.     TELF VARCHAR(38) CHARACTER SET NONE,
  7.     LUGAR VARCHAR(30) CHARACTER SET NONE)
  8. AS
  9. begin
  10.  
  11.   for select id,
  12.              fecha,
  13.              hora,
  14.              telf,
  15.   from smdrp
  16.   into :id,
  17.         :fecha,
  18.         :hora,
  19.         :telf,
  20.      begin
  21.          Lugar = '';
  22.          SELECT DESCRIP FROM DIRTELF
  23.          WHERE (TELF = :TELF)
  24.          INTO :LUGAR;
  25.          SUSPEND;
  26.      end
  27. end
  28.  
  29.  

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í:

Código: Text
  1. <%
  2. Dim Listado
  3. Dim Listado_numRows
  4.  
  5. Set Listado = Server.CreateObject("ADODB.Recordset")
  6. Listado.ActiveConnection = "dsn=Phone;uid=SYSDBA;pwd=masterkey;"
  7. Listado.Source = "SELECT * FROM SMDRP_AMP"
  8. Listado.CursorType = 0
  9. Listado.CursorLocation = 2
  10. Listado.LockType = 1
  11. Listado.Open()
  12.  
  13. Listado_numRows = 0
  14. %>
  15.  

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.