Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 22
mlara Va por buen camino
Yo pienso, tal como dice Juan R. que no es lógico que el SP se ejecute varias veces, una por cada fila que se deba retornar de acuerdo a la condición en la cláusula WHERE.

Veamos:

Si escribo: SELECT * FROM SP_NAME;

, como se supone hay al menos un SUSPEND dentro del SP, de hecho el SP se "suspende" cuando retorna la primera fila, pero dado que no hay cláusula WHERE entonces estamos seleccionando todas las filas, y para poderse mostrar la siguiente.. y luego la siguiente, por cada fila adicional la ejecución del SP "continúa", pero No se ejecuta de nuevo.

Por otro lado, la "continuación" de la ejecución del SP debe ser completamente independiente de que exista o no una cláusula WHERE en la sentencia SELECT que lo llama.

De otra manera, no es lógico, que por el hecho de haber una clásula WHERE se deba ejecutar de nuevo el procedimiento y al tiempo el mismo retorne la n-ésima fila. Eso no tiene sentido.

Yo opino que en definitiva, lo que sucede en este caso es algo "EXTRAÑO" mientras no se compruebe lo contrario.

Tal vez ACK pueda decírnoslo cuando lo averigue.

De todas formas, yo tengo una duda al respecto de la forma en que se hace la consulta:

¿por qué se escribe 'cons.*' y luego 'cons.columna', en vez de '*' y luego solamente 'columna'?
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:14:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi