Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   consultas a procedimientos almacenados.... (https://www.clubdelphi.com/foros/showthread.php?t=41720)

Kenobi 23-03-2007 14:35:15

consultas a procedimientos almacenados....
 
Saludos amigos....
entiendo que el titulo define lo ideal a hacer si lo que queremos es aumentar el rendimiento, pero la pregunta es como ....

ejemplo ...
tengo una consulta sencilla

SELECT *
FROM tabla

ok se que para crear el procedimiento solo tengo que hacer esto ...

CREATE PROCEDURE consultaenTabla
as
SELECT *
FROM tabla

y listo pero que tal si mi consulta es con parametro

SELECT *
FROM tabla
WHERE campo=:ValordeEntrada

aca la cosa cambia como le digo al procedure que va a recibir un parametro y que tal si son varios como lo hago, busque en la red y hay ejemplo pero confusos y yo quiero unos sencillo para entender y arrancar....

perdon por esta pregunta tonta....

Lepe 23-03-2007 16:21:32

Cita:

Empezado por Kenobi
ok se que para crear el procedimiento solo tengo que hacer esto ...

CREATE PROCEDURE consultaenTabla
as
SELECT *
FROM tabla

y listo [...]

...De listo nada, si pruebas eso verás que no funciona como esperas. Primero has de comprender exactamente lo simple para después continuar.

Además, ¿por qué crear un SP tan simple? Para ello crea una consulta con parámetros y la Preparas (Query1.Prepare). Tampoco es plan de abusar de los SPs.

Quizás una Vista (View) fuese más optimo para lo que planteas, siempre y cuando hayas más tablas involucradas... por ejemplo.

Saludos

poliburro 23-03-2007 16:31:15

Oka vamos haciendolo con los motores que manejo

Con SqlServer

Código SQL [-]
IF EXISTS (SELECT name 
    FROM   sysobjects 
    WHERE  name = N'ConsultaEnTabla' 
    AND    type = 'P')
    DROP PROCEDURE ConsultaEnTabla
GO
CREATE PROCEDURE ConsultaEnTabla
       (
          @PVCriterio Varchar(100)  --Define el criterio de búsqueda
        )
AS

SELECT *
FROM tabla
WHERE campo=@PVCriterio
Return

Con Db2/400

Código SQL [-]
CREATE PROCEDURE Libreria/ConsultaEnTabla                                        
  (                                                                   
   in PVCriterio Varchar(100) --Define el criterio de búsqueda
  )                                                                   
                                                                      
  DYNAMIC RESULT SETS 1                                               
  LANGUAGE SQL                                                        
  SPECIFIC ConsultaEnTabla
  BEGIN ATOMIC                                        
                Declare CrBusqueda Cursor With Return For 
                        SELECT *
                         FROM tabla
                         WHERE campo=PVCriterio;

                Open CrBusqueda;


Con Mysql

Código SQL [-]
DROP PROCEDURE IF EXISTS ConsultaEnTabla;
CREATE DEFINER=`usuario`@`%` PROCEDURE ConsultaEnTabla
            (
            in PVCriterio Varchar(100) --Define el criterio de búsqueda
            )  
 BEGIN
                        SELECT *
                         FROM tabla
                         WHERE campo=PVCriterio;
 END

Kenobi 23-03-2007 20:28:12

de eso se trata amigo Lepe...
 
la consulta sencilla es eso sencilla para aprender desde bajito, y claro es una consulta sencilla que se puede hacer con un query con parametros (de hecho asi estan en mi aplicacion) o con una vista cosa de acceder desde varios puntos (reportes, aplicaciones) pero lo que quiero es ver como seria con procedures para comenzar a aplicarlos en cosas mayores ....

gracias por su tiempo amigos

poliburro 23-03-2007 20:43:46

Cita:

Empezado por Kenobi
pero lo que quiero es ver como seria con procedures para comenzar a aplicarlos en cosas mayores ....

gracias por su tiempo amigos


De los tres que te puse no te sirve ninguno?

Bueno, aver te agrego este con firebird

Código SQL [-]
firebird
CREATE PROCEDURE ConsultaEnTabla (PVCriterio Varchar(100)) 
AS BEGIN 
     SELECT *
       FROM tabla
      WHERE campo=PVCriterio;
END


La franja horaria es GMT +2. Ahora son las 05:05:18.

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