Ver Mensaje Individual
  #16  
Antiguo 01-12-2011
juanlito juanlito is offline
Miembro
NULL
 
Registrado: ago 2011
Ubicación: Jerez de la Frontera
Posts: 14
Reputación: 0
juanlito Va por buen camino
Buenas Tardes,

consegui hacer todo y que mi aplicacion fuese rapida, pero pensando en el futuro he observado que si uso

Código SQL [-]
 
SELECTcount( PLAT.LINEA) FROM PLAT WHERE ((PLAT.LINEA) = :CALLING) 
   INTO :VECES ;
   if (:VECES = 0)  then
   begin
    EXIT;
    suspend;

El procedimiento cada vez que la tabla vaya creciendo se ira ralentizando porque tendra que finalizar la consulta y a mi con que encuentre un campo me vale.

He estado consultando y he encontrado que con el FIRST podria hacer lo que prentendo, en cuanto encuentre un campo parar la consulta porque ya es distinto de 0 y con eso me sirve, el principal problema es que he puesto el siguiente codigo

Código SQL [-]
  SELECT FIRST 1 ( PLAT.LINEA) FROM PLAT WHERE ((PLAT.LINEA) = :CALLING)
  INTO :VECE;
   if (:VECE IS NULL ) then

Y no me funciona, he probado poniendo order by al final, comparando en el IF en vez de NULL si cadena vacia '' pero no consigo que me funcione como quiero, solo funciona cuando uso el count, pero me gustaria no tener que hacer el select entero y poder quedarme tranquilo de que aunque mis tablas crezcan ( que creceran bastante) no se va a empezar a ralentizar de manera grande.

Pruebo directamente en un view de firebird.

Muchas gracias y si llevo tiempo con el hilo un poco parado es porque siempre procuro solucionar yo los problemas.

Un saludo
Responder Con Cita